我有一个包含三个文件的文件夹:
$ ls
aaa.txt abc.txt def.txt
如果我想对除abc.txt
文件之外的输出进行grep复制,可以执行以下操作:
$ ls | grep -v 'abc'
aaa.txt
def.txt
如果我想排除两个文件,我可以做:
$ ls | grep -v 'abc' | grep -v 'def'
aaa.txt
但是我该如何使用一个正则表达式和一个grep
调用呢?
这不起作用:
$ ls | grep -v '[(abc)(def)]'
这也不是:
$ ls | grep -v "abc|def"
答案 0 :(得分:1)
将ERE(扩展正则表达式)模式用于交替匹配|
,这在BRE中默认未启用(grep
默认使用)
grep -vE "abc|def"
或使用扩展的grep
,即egrep
,默认情况下启用ERE
egrep -v "abc|def"