我希望能够查找文件中包含某个模式但不包含另一个模式的行。例如,我需要查找所有包含 loom
但不包含 gloom
的文件/行。因此,我可以使用以下命令查找 loom
:
grep -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp)
现在,我希望搜索 loom
,但不包括 gloom
。然而,以下两个命令均失败:grep -v 'gloom' -n 'loom' ~/projects/**/trunk/src/**/*.@(h|cpp)
grep -n 'loom' -v 'gloom' ~/projects/**/trunk/src/**/*.@(h|cpp)
我该做什么才能实现我的目标?
编辑1: 我的意思是 loom
和 gloom
是字符序列(不一定是单词)。因此,例如,在命令输出中需要 bloomberg
,而不需要 ungloomy
。
编辑2: 这是我的期望示例。以下两行都在命令输出中:
我面对着透过熏香的面纱隐现出来的图标。
阿蒂在阴沉的天气中缓缓移动。
以下两行都不在命令输出中:
这真是太可怕了 - 大片大片的云彩遮天蔽日。
在高高的点上西南方向的大厅里。
there is a loom in the gloom
- 你想要打印出这一行吗?只是想了解您是否只寻找包含loom但不是作为gloom的一部分的行,还是即使loom在该行的其他位置上出现,您真的想要排除包含gloom的行。发布一些示例输入和预期输出将有所帮助。 - Ed Mortong
为前缀的包含loom
的行。(抱歉,昨天我开始写评论,但从未完成。这个评论是意外发出的。) - Loomslooming
中的loom
,也有gloomy
天中的gloom
,为什么呢? - Juto