我正在尝试 grep 仅包含数字和数字的 txt 文件的名称,但我不知道 grep 是否适合这项工作。
如果我有像下面这样的文件...
FILE1: 12324
FILE2: 12345q
FILE3: qqerxv
它应该只给我 FILE1
的名称。
我试过 grep -r -l [a-zA-Z]
但这给了我相反的结果。
我应该使用什么模式?我应该怎么做才能 grep 除了包含除数字以外的任何内容的文件之外的所有内容
如何 grep 仅包含数字的文件?
最佳答案
grep -r -L "[^0-9 ]".
[^0-9 ]
将匹配任何不包含数字或空格的内容(认为这是合适的,否则所有包含空格和数字的文件都将被丢弃)。
-L
标志是 --files-without-match
,因此这基本上为您提供包含数字或空格的文件。
反向搜索比搜索包含 [a-zA-Z] 的文件要好得多,因为如果其中有任何其他特殊字符 (_=+&...),此搜索就会中断。
顺便说一句,-r
标志将在当前目录中递归搜索。如果您只想搜索当前目录中的文件,我建议删除 -r
并将 .
替换为 *
或只是简单地替换它与您要匹配的单个文件的名称。
关于linux - 如何grep只包含数字的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57701039/