linux - 列出包含字符串但 *NOT* 包含另一个字符串的文件的 Unix 命令

如何递归查看包含一个字符串但具体没有另一个字符串的文件列表?另外,我的意思是评估文件的文本,而不是文件名。


结论:

根据评论,我最终使用了:

find . -name "*.html" -exec grep -lR 'base\-maps' {} \; | xargs grep -L 'base\-maps\-bot'

这返回了带有“base-maps”而不是“base-maps-bot”的文件。谢谢!!

最佳答案

试试这个:

grep -rl <string-to-match> | xargs grep -L <string-not-to-match>

解释:grep -lr使 grep 递归 (r) 输出包含 <string-to-match> 的所有文件的列表 (l) . xargs 循环遍历这些文件,调用 grep -L在他们每个人身上。 grep -L仅当文件不包含 <string-not-to-match> 时才会输出文件名.

https://stackoverflow.com/questions/4989519/

相关文章:

linux - 在 Docker 容器中挂载 SMB/CIFS 共享

linux - 是否可以让vim显示行号?

c - 交叉编译时如何使用外部库?

linux - 在响应中返回某个字符后,如何关闭 netcat 连接?

linux - 如何获取 linux 实用程序 tail 的源代码?

linux - 当存在同名的共享库时,如何强制链接静态库

c - 如何创建新的 Linux 内核调度程序

linux - 有什么方法可以在linux中保留但不提交内存?

linux - 在脚本内使用没有密码的 sudo

c - gcc 调试符号(-g 标志)与链接器的 -rdynamic 选项