linux - 如何grep只包含数字的文件?

标签 linux grep

我正在尝试 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/

相关文章:

linux - 在 Redhat Linux 上检查硬盘问题的最佳策略

c++ - 如何在 64-linux 上使用 c++ 中的 new 运算符动态分配大内存,如 10 G?

使用 pgrep 返回值不正确的 PHP exec 命令

bash - grep: -P 在 Jenkins 中仅支持 unibyte 和 UTF-8 语言环境

unix - Unix Grep 的更快替代方案

makefile - Makefile中的Grep退出代码

linux - 从 csv 输出特定行

php - 插入参数超过 30 个字符时出错

php 窗口在 windows 中比 linux 慢 4~5 倍

linux - contiki 中的 cooja 模拟器中的缓冲区 View 或缓冲区列表器是什么?