我想grep文件夹中的多个文件。除了像pcap文件和gziped文件这样的大文件之外,我想要大肆渲染它们。所以我在努力:
$ grep foo !({*pcap*,*gz*})
但这不起作用。因为虽然它避免了gziped文件,但!({*pcap*,*gz*})
的shell扩展实际上会返回pcap文件。请问如何包含除pcap和gziped文件之外的所有文件?
答案 0 :(得分:6)
GLOBIGNORE
参数列出要从glob扩展结果中排除的文件:
假设当前目录为空:
$ touch foo1 foo2 foo3 foo10 foo11 foo12
$ GLOBIGNORE="foo1*:foo3"
$ ls *
foo2
答案 1 :(得分:5)
您需要将其更改为
grep foo !(*pcap*|*gz*)
排除pcap
和gz
个文件
答案 2 :(得分:1)
如果您没有可用的扩展模式,您还可以使用多个--exclude选项:
grep foo * --exclude "*.pcap" --exclude "*.gz"