排除模式而不链接greps

排除模式而不链接greps,grep,Grep,我有这个: # spam.txt src/blahblah/potato.py src/migrations/helloworld.py spam/blahblah/thing.py src/thingy/other.cpp 如何将排除链接到同一模式中?i、 e.如何在下面编写“模式?”,以获得相同的结果 $ cat spam.txt | grep 'src.*\.py' | grep --invert-match '/migrations/' src/blahblah/potato.py

我有这个:

# spam.txt
src/blahblah/potato.py
src/migrations/helloworld.py
spam/blahblah/thing.py
src/thingy/other.cpp
如何将排除链接到同一模式中?i、 e.如何在下面编写
“模式?”
,以获得相同的结果

$ cat spam.txt | grep 'src.*\.py' | grep --invert-match '/migrations/'
src/blahblah/potato.py
更好

awk'/src/&/\.py/&&/迁移/'spam.txt

我认为不可能。。。我从来没有见过一种方法可以用一句话来表达。Sed、awk或Perl有一些复合语句,可能感觉像是一个单独的语句,但实际上这只是将两个单独的过滤器连接在一起的另一种方式。但是我可以建议使用-v而不是--inverse match,这样可以减少键入的次数。例如,使用复合sed语句:sed-n'/migrations/!s/src.*py/&/p'spam.txt
$ grep 'pattern???' spam.txt