ripgrep path pattern
I'd like ripgrep to search paths with the specified pattern. For e.g.
rg PATTERN --path REGEX
where PATTERN is the pattern to grep and REGEX is the path matching pattern.
I have scattered through the documentation and I am unsure if this functionality is baked in.
ripgrep
add a comment |
I'd like ripgrep to search paths with the specified pattern. For e.g.
rg PATTERN --path REGEX
where PATTERN is the pattern to grep and REGEX is the path matching pattern.
I have scattered through the documentation and I am unsure if this functionality is baked in.
ripgrep
Lets be clear this is solvable usingrg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.
– p0lAris
Feb 26 at 16:42
add a comment |
I'd like ripgrep to search paths with the specified pattern. For e.g.
rg PATTERN --path REGEX
where PATTERN is the pattern to grep and REGEX is the path matching pattern.
I have scattered through the documentation and I am unsure if this functionality is baked in.
ripgrep
I'd like ripgrep to search paths with the specified pattern. For e.g.
rg PATTERN --path REGEX
where PATTERN is the pattern to grep and REGEX is the path matching pattern.
I have scattered through the documentation and I am unsure if this functionality is baked in.
ripgrep
ripgrep
asked Feb 26 at 16:41
p0lArisp0lAris
1011
1011
Lets be clear this is solvable usingrg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.
– p0lAris
Feb 26 at 16:42
add a comment |
Lets be clear this is solvable usingrg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.
– p0lAris
Feb 26 at 16:42
Lets be clear this is solvable using
rg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.– p0lAris
Feb 26 at 16:42
Lets be clear this is solvable using
rg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.– p0lAris
Feb 26 at 16:42
add a comment |
1 Answer
1
active
oldest
votes
Use the -g/--glob
flag, as documented in the guide. It uses globbing instead of regexes, but accomplishes the same thing in practice. For example:
rg PM_RESUME -g '*.h'
finds occurrences of PM_RESUME
only in C header files in my checkout of the Linux kernel.
ripgrep provides no way to use a regex to match file paths. Instead, you should use xargs if you absolutely need to use a regex:
rg --files -0 | rg '.*.h$' --null-data | xargs -0 rg PM_RESUME
Breaking it down:
rg --files -0
prints all of the files it would search, on stdout, delimited byNUL
.
rg '.*.h$' --null-data
only matches lines from the file list that end with.h
.--null-data
ensures that we retain ourNUL
bytes.
xargs -0 rg PM_RESUME
splits the arguments that areNUL
delimited, and hands them to ripgrep, which precisely corresponds to the list of files matching your initial regex.
Handling NUL
bytes is necessary for full correctness. If you don't have whitespace in your file paths, then the command is simpler:
rg --files | rg '.*.h$' | xargs rg PM_RESUME
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%2f503161%2fripgrep-path-pattern%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
Use the -g/--glob
flag, as documented in the guide. It uses globbing instead of regexes, but accomplishes the same thing in practice. For example:
rg PM_RESUME -g '*.h'
finds occurrences of PM_RESUME
only in C header files in my checkout of the Linux kernel.
ripgrep provides no way to use a regex to match file paths. Instead, you should use xargs if you absolutely need to use a regex:
rg --files -0 | rg '.*.h$' --null-data | xargs -0 rg PM_RESUME
Breaking it down:
rg --files -0
prints all of the files it would search, on stdout, delimited byNUL
.
rg '.*.h$' --null-data
only matches lines from the file list that end with.h
.--null-data
ensures that we retain ourNUL
bytes.
xargs -0 rg PM_RESUME
splits the arguments that areNUL
delimited, and hands them to ripgrep, which precisely corresponds to the list of files matching your initial regex.
Handling NUL
bytes is necessary for full correctness. If you don't have whitespace in your file paths, then the command is simpler:
rg --files | rg '.*.h$' | xargs rg PM_RESUME
add a comment |
Use the -g/--glob
flag, as documented in the guide. It uses globbing instead of regexes, but accomplishes the same thing in practice. For example:
rg PM_RESUME -g '*.h'
finds occurrences of PM_RESUME
only in C header files in my checkout of the Linux kernel.
ripgrep provides no way to use a regex to match file paths. Instead, you should use xargs if you absolutely need to use a regex:
rg --files -0 | rg '.*.h$' --null-data | xargs -0 rg PM_RESUME
Breaking it down:
rg --files -0
prints all of the files it would search, on stdout, delimited byNUL
.
rg '.*.h$' --null-data
only matches lines from the file list that end with.h
.--null-data
ensures that we retain ourNUL
bytes.
xargs -0 rg PM_RESUME
splits the arguments that areNUL
delimited, and hands them to ripgrep, which precisely corresponds to the list of files matching your initial regex.
Handling NUL
bytes is necessary for full correctness. If you don't have whitespace in your file paths, then the command is simpler:
rg --files | rg '.*.h$' | xargs rg PM_RESUME
add a comment |
Use the -g/--glob
flag, as documented in the guide. It uses globbing instead of regexes, but accomplishes the same thing in practice. For example:
rg PM_RESUME -g '*.h'
finds occurrences of PM_RESUME
only in C header files in my checkout of the Linux kernel.
ripgrep provides no way to use a regex to match file paths. Instead, you should use xargs if you absolutely need to use a regex:
rg --files -0 | rg '.*.h$' --null-data | xargs -0 rg PM_RESUME
Breaking it down:
rg --files -0
prints all of the files it would search, on stdout, delimited byNUL
.
rg '.*.h$' --null-data
only matches lines from the file list that end with.h
.--null-data
ensures that we retain ourNUL
bytes.
xargs -0 rg PM_RESUME
splits the arguments that areNUL
delimited, and hands them to ripgrep, which precisely corresponds to the list of files matching your initial regex.
Handling NUL
bytes is necessary for full correctness. If you don't have whitespace in your file paths, then the command is simpler:
rg --files | rg '.*.h$' | xargs rg PM_RESUME
Use the -g/--glob
flag, as documented in the guide. It uses globbing instead of regexes, but accomplishes the same thing in practice. For example:
rg PM_RESUME -g '*.h'
finds occurrences of PM_RESUME
only in C header files in my checkout of the Linux kernel.
ripgrep provides no way to use a regex to match file paths. Instead, you should use xargs if you absolutely need to use a regex:
rg --files -0 | rg '.*.h$' --null-data | xargs -0 rg PM_RESUME
Breaking it down:
rg --files -0
prints all of the files it would search, on stdout, delimited byNUL
.
rg '.*.h$' --null-data
only matches lines from the file list that end with.h
.--null-data
ensures that we retain ourNUL
bytes.
xargs -0 rg PM_RESUME
splits the arguments that areNUL
delimited, and hands them to ripgrep, which precisely corresponds to the list of files matching your initial regex.
Handling NUL
bytes is necessary for full correctness. If you don't have whitespace in your file paths, then the command is simpler:
rg --files | rg '.*.h$' | xargs rg PM_RESUME
answered Feb 26 at 17:29
BurntSushi5BurntSushi5
1262
1262
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.
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%2f503161%2fripgrep-path-pattern%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
Lets be clear this is solvable using
rg -l PATTERN | grep -E REGEX
but I'd prefer to be more efficient and search only in files that match the pattern.– p0lAris
Feb 26 at 16:42