如何在Linux上查找不包含文本的文本文件?

如何在Linux上查找不包含文本的文本文件?,linux,find,text-processing,Linux,Find,Text Processing,如何在Linux上查找包含一些文本的文件而不是?基本上,我在寻找下面的倒数 find . -print | xargs grep -iL "somestring" 具有讽刺意味的是,您引用的命令与您描述的完全一致。 试试看 只说了一句 我想你可能把-L和-L搞混了 find . -print | xargs grep -iL "somestring" 是的倒数 find . -print | xargs grep -il "somestring" 顺便说一下,考虑一下 find . -p

如何在Linux上查找包含一些文本的文件而不是?基本上,我在寻找下面的倒数

find . -print | xargs grep -iL "somestring"

具有讽刺意味的是,您引用的命令与您描述的完全一致。 试试看

只说了一句


我想你可能把-L和-L搞混了

find . -print | xargs grep -iL "somestring"
的倒数

find . -print | xargs grep -il "somestring"
顺便说一下,考虑一下

find . -print0 | xargs -0 grep -iL "somestring"
甚至

grep -IRiL "somestring" .
如果您使用“查找”脚本,请在文件夹中执行“grep”:

[root@vps test]# find  | xargs grep -Li 1234
grep: .: Is a directory
.
./test.txt
./test2.txt
[root@vps test]#
直接使用“grep”:

# grep -Li 1234 /root/test/*
/root/test/test2.txt
/root/test/test.txt
[root@vps test]#

或者在“查找”选项中指定“-键入f”…即使使用“查找”,也会花费更多时间(先查找文件列表,然后创建grep)。

您可以单独使用grep(无需查找)

这是对
grep

     -L, --files-without-match
             each file processed.
     -R, -r, --recursive
             Recursively search subdirectories listed.

     -i, --ignore-case
             Perform case insensitive matching.
如果使用
l
小写,则会得到相反的结果(带有匹配项的文件)


通过Find和grep查找标记文件以查找不匹配项

$ find. -name '* .md' -print0 | xargs -0 grep -iL "title"
直接使用grep的
-L
搜索只包含标记文件而没有标题的文件

$ grep -iL "title" -r ./* --include '* .md'

接受您的回答,它是递归的,与我想要的find相反:grep-IRiL“somestring”。属于SuperUser或unix.stackexchange.com。如果其中一个文件名或目录名包含空格,则此操作无法正常工作。使用
find-键入f-exec grep-iL“somestring”+
(或
grep-r
)。可能与
     -l, --files-with-matches
             Only the names of files containing selected lines are written
$ find. -name '* .md' -print0 | xargs -0 grep -iL "title"
$ grep -iL "title" -r ./* --include '* .md'