我目前仍在努力解决我遇到的这个问题。我试图使用egrep找到5位数的连续数字或9位数的连续数字。
现在我只得到一行上出现的5位数字,之后没有别的。我现在有......
egrep '^[[:digit:]]{5} | [[:digit:]]{9}$' file.txt
例如,如果我的file.txt有
123456789 24
12345 642
94363
将会找到的是
12345 642
如何制作它以便检查每一行并查看其他5位和9位数字?
编辑:在表达式周围使用括号查找...
1234 56789 4
12345 642
答案 0 :(得分:0)
在表达式周围使用()
:
$ egrep "(^| )([[:digit:]]{5}|[[:digit:]]{9})( |$)" file
123456789 24
12345 642
94363
如果需要,请添加^
和$
。
修改:如果您将-o
添加到egrep
,您会看到所获得的内容:
$ egrep -o "(^| )([[:digit:]]{5}|[[:digit:]]{9})( |$)" file
123456789
12345
94363
答案 1 :(得分:0)
egrep '^[[:digit:]]{5} | [[:digit:]]{9}$' file.txt
删除^[[:digit:]]{5}
后的空格,第3行在5位数后无空格,因此无法匹配。
删除[[:digit:]]{9}
之前的空格,第一行在123456789之前没有空格,所以无法匹配。