如何找出当前目录中不包含单词foo(使用grep)的文件?
当前回答
grep -irnw "filepath" -ve "pattern"
or
grep -ve "pattern" < file
上面的命令会给我们结果,因为-v找到了正在搜索的模式的倒数
其他回答
来看看ack。它自动为您排除.svn,为您提供Perl正则表达式,并且是一个简单的Perl程序下载。
在ack中,与你要找的内容等价:
ack -L foo
当grep没有-L选项时(例如IBM AIX),只有grep和shell时的另一种选择:
for file in * ; do grep -q 'my_pattern' $file || echo $file ; done
为了完整,ripgrep版本如下:
rg --files-without-match "pattern"
你可以结合文件类型和搜索路径,例如:
rg --files-without-match -t ruby "frozen_string_literal: true" app/
我运气很好
grep -H -E -o -c "foo" */*/*.ext | grep ext:0
我用grep -v的尝试只是给了我所有没有“foo”的行。
这可能会对其他人有所帮助。我有混合文件Go和测试文件。但我只需要。go文件。所以我用了
ls *.go | grep -v "_test.go"
-v,——invert-match选择不匹配的行参见https://stackoverflow.com/a/3548465
也可以使用vscode从终端打开所有文件
code $(ls *.go | grep -v "_test.go")
推荐文章
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 从包含文件名的路径获取不包含文件名的完整路径
- 如何拉特定的目录与git
- Git:从另一个分支复制目录中的所有文件
- PHP,获取没有文件扩展名的文件名
- 显示所有集合中的所有内容
- 'find -exec'是Linux中的shell函数
- 如何管道列表的文件返回的找到命令到猫查看所有文件
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 从java.io.File获取java.nio.file.Path对象
- Chmod递归
- 如何将多行输出连接到一行?
- 使用grep搜索包含点的字符串
- 用c#编写数据到CSV文件
- 安卓系统;检查文件是否存在而不创建新的文件