use*_*622 56 regex grep character-class
为什么我不能匹配字符串
"1234567-1234567890"
Run Code Online (Sandbox Code Playgroud)
使用给定的正则表达式
\d{7}-\d{10}
Run Code Online (Sandbox Code Playgroud)
与egrep
从这样的外壳:
egrep \d{7}-\d{10} file
Run Code Online (Sandbox Code Playgroud)
?
pol*_*nts 69
egrep
不识别\d
数字字符类的简写,所以你需要使用例如[0-9]
.
而且,虽然在这种情况下并不是绝对必要,但引用正则表达式来防止shell的误解是一种好习惯.因此,这样的事情应该有效:
egrep '[0-9]{7}-[0-9]{10}' file
Run Code Online (Sandbox Code Playgroud)
grep
,ed
,sed
,egrep
,awk
,emacs
grep
vs egrep
与其他正则表达式之间的差异And*_*zlo 23
为了完整性:
事实上,Egrep确实支持角色类.课程是:
示例(注意双括号):
egrep '[[:digit:]]{7}-[[:digit:]]{10}' file
Run Code Online (Sandbox Code Playgroud)