我正在寻找在文件中搜索所有不包含数字的字符串,我提出了以下正则表达式。
\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 可能会警告未实现的功能。