使用GREP和REGEX时遇到问题

bvk5enib  于 2023-04-13  发布在  其他
关注(0)|答案(3)|浏览(141)

我有一个文本文件,它以以下格式存储四个数字的组合:

Num1,Num2,Num3,Num4
Num5,Num6,Num7,Num8
.............

我有一大堆这样的文件,我需要的是grep所有包含上述模式的文件名。
我的grep构造如下:

grep -l "{d+},{d+},{d+},{d+}" /some/path/to/file/name

grep终止时不返回任何内容。
有人能指出我的grep语句可能做错了什么吗?
谢谢

eit6fx6z

eit6fx6z1#

这应该可以实现您想要的功能:

egrep -l '[[:digit:]]+,[[:digit:]]+,[[:digit:]]+,[[:digit:]]+' /some/path/to/file/name
vql8enpb

vql8enpb2#

一种方法是使用perl正则表达式:

grep -Pl "\d+,\d+,\d+,\d+" /some/path/to/file/name

在你的语法中,d是文字。它应该转义那个字母,但grep正则表达式不接受它。

yr9zkbsy

yr9zkbsy3#

最后,我没有任何其他选择(grep -P对我不起作用)
grep "\d\+,\d\+,\d\+,\d\+"
不知何故,更多的字符必须使用grep正则表达式进行转义。

相关问题