Let's say I have n
files with names like link123.txt
, link345.txt
, link645.txt
, etc.
I'd like to grep a subset of these n
files for a keyword. For example:
grep 'searchtext' link123.txt link 345.txt ...
I'd like to do something like
grep 'searchtext' link[123\|345].txt
How can I mention the filenames as regex in this case?
you can use find
and grep
together like this
find . -regex '.*/link\(123\|345\).txt' -exec grep 'searchtext' {} \;
Thanks for ghoti's comment.
You can use the bash option extglob
, which allows extended use of globbing, including |
separated pattern lists.
@(123|456)
Matches one of 123
or 456
once.
shopt -s extglob
grep 'searchtext' link@(123|345).txt
shopt -u extglob
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With