Unix command to search with a string of 6 numbers for any 3 matching numbers per line
Does anyone know of a UNIX command or series of commands to list lines that contains 3 matching numbers to a search with 6 numbers? For example, searching with 38 39 40 41 42 43 I would like to see combinations like 38 40 43 or 39 41 42 listed per line. Thanks.
text-processing
add a comment |
Does anyone know of a UNIX command or series of commands to list lines that contains 3 matching numbers to a search with 6 numbers? For example, searching with 38 39 40 41 42 43 I would like to see combinations like 38 40 43 or 39 41 42 listed per line. Thanks.
text-processing
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about38 38 40or38 43 40?
– Stefan Hamcke
Dec 29 '18 at 21:42
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27
add a comment |
Does anyone know of a UNIX command or series of commands to list lines that contains 3 matching numbers to a search with 6 numbers? For example, searching with 38 39 40 41 42 43 I would like to see combinations like 38 40 43 or 39 41 42 listed per line. Thanks.
text-processing
Does anyone know of a UNIX command or series of commands to list lines that contains 3 matching numbers to a search with 6 numbers? For example, searching with 38 39 40 41 42 43 I would like to see combinations like 38 40 43 or 39 41 42 listed per line. Thanks.
text-processing
text-processing
asked Dec 29 '18 at 19:59
Michael RobertsMichael Roberts
1
1
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about38 38 40or38 43 40?
– Stefan Hamcke
Dec 29 '18 at 21:42
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27
add a comment |
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about38 38 40or38 43 40?
– Stefan Hamcke
Dec 29 '18 at 21:42
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about
38 38 40 or 38 43 40?– Stefan Hamcke
Dec 29 '18 at 21:42
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about
38 38 40 or 38 43 40?– Stefan Hamcke
Dec 29 '18 at 21:42
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27
add a comment |
1 Answer
1
active
oldest
votes
Assuming that you have a file named file that contains lines with mutually different whitespace-separated numbers, and you have a set of 6 numbers - e.g. 38, 39, 40, 41, 42, 43 - that you want to search for in combinations of three, such that lines that consecutively contain three of these numbers in random order are listed as a result of the search, you could use:
grep -P '((^|s+)(38|39|40|41|42|43)(?=($|s))){3}' file
which uses grep with a Perl regular expression (PCRE).
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491506%2funix-command-to-search-with-a-string-of-6-numbers-for-any-3-matching-numbers-per%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Assuming that you have a file named file that contains lines with mutually different whitespace-separated numbers, and you have a set of 6 numbers - e.g. 38, 39, 40, 41, 42, 43 - that you want to search for in combinations of three, such that lines that consecutively contain three of these numbers in random order are listed as a result of the search, you could use:
grep -P '((^|s+)(38|39|40|41|42|43)(?=($|s))){3}' file
which uses grep with a Perl regular expression (PCRE).
add a comment |
Assuming that you have a file named file that contains lines with mutually different whitespace-separated numbers, and you have a set of 6 numbers - e.g. 38, 39, 40, 41, 42, 43 - that you want to search for in combinations of three, such that lines that consecutively contain three of these numbers in random order are listed as a result of the search, you could use:
grep -P '((^|s+)(38|39|40|41|42|43)(?=($|s))){3}' file
which uses grep with a Perl regular expression (PCRE).
add a comment |
Assuming that you have a file named file that contains lines with mutually different whitespace-separated numbers, and you have a set of 6 numbers - e.g. 38, 39, 40, 41, 42, 43 - that you want to search for in combinations of three, such that lines that consecutively contain three of these numbers in random order are listed as a result of the search, you could use:
grep -P '((^|s+)(38|39|40|41|42|43)(?=($|s))){3}' file
which uses grep with a Perl regular expression (PCRE).
Assuming that you have a file named file that contains lines with mutually different whitespace-separated numbers, and you have a set of 6 numbers - e.g. 38, 39, 40, 41, 42, 43 - that you want to search for in combinations of three, such that lines that consecutively contain three of these numbers in random order are listed as a result of the search, you could use:
grep -P '((^|s+)(38|39|40|41|42|43)(?=($|s))){3}' file
which uses grep with a Perl regular expression (PCRE).
edited Dec 29 '18 at 23:51
answered Dec 29 '18 at 23:46
ozzyozzy
4414
4414
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491506%2funix-command-to-search-with-a-string-of-6-numbers-for-any-3-matching-numbers-per%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Do you want only lines where these numbers are separated only by a space, and do these numbers need to be distinct and/or in the order you typed them? So what about
38 38 40or38 43 40?– Stefan Hamcke
Dec 29 '18 at 21:42
Unix or UNIX. Unix is the generic name for e.g. BSD, System-V, Gnu, etc. UNIX is a brand name.
– ctrl-alt-delor
Dec 29 '18 at 23:27