如何找出当前目录中不包含单词foo(使用grep)的文件?
当前回答
你实际上需要:
find . -not -ipath '.*svn*' -exec grep -H -E -o -c "foo" {} \; | grep :0\$
其他回答
如果你正在使用git,它会搜索所有被跟踪的文件:
git grep -L "foo"
如果你打开了**子目录globbing,你可以在跟踪文件的子集中搜索(在.bashrc中使用shopt -s globstar):
git grep -L "foo" -- **/*.cpp
如果你的grep有-L(或——files-without-match)选项:
$ grep -L "foo" *
下面的命令给出了所有不包含foo模式的文件:
find . -not -ipath '.*svn*' -exec grep -H -E -o -c "foo" {} \; | grep 0
下面的命令不需要find通过使用第二个grep来过滤svn文件夹。
grep -rL "foo" ./* | grep -v "\.svn"
grep -irnw "filepath" -ve "pattern"
or
grep -ve "pattern" < file
上面的命令会给我们结果,因为-v找到了正在搜索的模式的倒数
推荐文章
- 使用Java重命名文件
- PowerShell等价于grep -f
- 如何从Python包内读取(静态)文件?
- 为什么我得到“Pickle - EOFError: run out of input”读取一个空文件?
- 查找文件名以指定字符串开头的所有文件?
- c#测试用户是否有对文件夹的写权限
- 写字符串到文本文件,并确保它总是覆盖现有的内容。
- 从另一个文件导入变量?
- 在find中使用分号(;)vs +(+)和exec
- 如何进入每个目录并执行命令?
- 寻找不属于特定用户的文件
- 如何复制文件跨计算机使用SSH和MAC OS X终端
- 如何在node.js中移动文件?
- 如何修改文本文件?
- 为什么Path。以Path.DirectorySeparatorChar开头的文件名合并不正确?