6
是否有可能(以及如何)将模式与ack(ack-grep在Linux的某些发行版上)链接起来,就像我习惯于使用grep一样?ack-grep有多种模式?
例如
grep "foo" somefile.c | grep -v "bar"
...匹配所有带有“foo”但没有“bar”的行。
是否有可能(以及如何)将模式与ack(ack-grep在Linux的某些发行版上)链接起来,就像我习惯于使用grep一样?ack-grep有多种模式?
例如
grep "foo" somefile.c | grep -v "bar"
...匹配所有带有“foo”但没有“bar”的行。
ack
使用Perl的正则表达式,而那些允许lookahead assertions:
^(?!.*bar).*foo.*$
将匹配包含foo
但不包含bar
线。
我不熟悉的ack
使用,但这样的事情应该工作:
ack '^(?!.*bar).*foo.*$' myfile
这里的问题是,如果文件没有'bar'在里面,对于'FOO搜索'甚至没有尝试过。 – 2015-11-24 18:01:50
@AnthonyHatzopoulos:为什么会这样呢? – 2015-11-24 18:06:37
OP正在寻找带有foo的线条。然后他们不想把这些线条放回去。我认为这件事发生的恰恰就是该文件中有条形码,他们得到了他们想要的东西。虽然它不会仅以foo返回文件。假设我正在寻找所有'foo()'而不是'foo(bar)',我仍然想要所有其他* foos *。在我的例子中'somefile.c'是一个完整的项目。尽管它值得一提。 – 2015-11-24 18:16:04