我有一个文本文件,它以以下格式存储四个数字的组合:
Num1,Num2,Num3,Num4 Num5,Num6,Num7,Num8 .............
我有一大堆这样的文件,我需要的是grep所有包含上述模式的文件名。我的grep构造如下:
grep -l "{d+},{d+},{d+},{d+}" /some/path/to/file/name
grep终止时不返回任何内容。有人能指出我的grep语句可能做错了什么吗?谢谢
eit6fx6z1#
这应该可以实现您想要的功能:
egrep -l '[[:digit:]]+,[[:digit:]]+,[[:digit:]]+,[[:digit:]]+' /some/path/to/file/name
vql8enpb2#
一种方法是使用perl正则表达式:
perl
grep -Pl "\d+,\d+,\d+,\d+" /some/path/to/file/name
在你的语法中,d是文字。它应该转义那个字母,但grep正则表达式不接受它。
d
grep
yr9zkbsy3#
最后,我没有任何其他选择(grep -P对我不起作用)grep "\d\+,\d\+,\d\+,\d\+"不知何故,更多的字符必须使用grep正则表达式进行转义。
grep -P
grep "\d\+,\d\+,\d\+,\d\+"
3条答案
按热度按时间eit6fx6z1#
这应该可以实现您想要的功能:
vql8enpb2#
一种方法是使用
perl
正则表达式:在你的语法中,
d
是文字。它应该转义那个字母,但grep
正则表达式不接受它。yr9zkbsy3#
最后,我没有任何其他选择(
grep -P
对我不起作用)grep "\d\+,\d\+,\d\+,\d\+"
不知何故,更多的字符必须使用grep正则表达式进行转义。