grep 命令返回 0 - 匹配全局所有非数字字符

grep 命令返回 0 - 匹配全局所有非数字字符

我正在寻找在文件中搜索所有不包含数字的字符串,我提出了以下正则表达式。

\D*/g

这个在线工具可以按照我的需要工作:https://regex101.com/#pcre,但是当我运行以下命令时:

grep -c "\D*/g" nonDistortResults.txt 

它正在返回0

该文件的格式如下:

2573
kitchenDoor 2573
2573
2573
2573
2574
2574
2574
2574
kitchenDoor 2574
2574
2574
2575
2575
2575
2575
2575
kitchenDoor 2575
2576

因此在上面的例子中我希望它返回3

答案1

您需要按如下方式调整您的模式:

grep -c \D nonDistortResults.txt
  • 我们不需要“贪婪”标志,因为 grep 已经可以处理行
  • 这里不需要引号
  • 星号可以是任意数量的结果,包括 0(因此使用它将为每一行返回 true)

如果您需要再次使用一些 Pearl 正则表达式(PCRE),您可以查看 grep 的 -P 选项,但手册页说:

-P, --perl-regexp
将 PATTERN 解释为 Perl 正则表达式 (PCRE,见下文)。这是高度实验性的,grep -P 可能会警告未实现的功能。

相关内容