我想grep包含逗号后跟四个相同数字后跟逗号后跟一个字母字符的行。
我试过
grep -E ,'1111|2222|3333|4444|5555|6666|7777|8888|9999',[[:alpha:]] file
这似乎没有我所描述的。问题是它似乎没有正确处理逗号和[[:alpha:]]。
你怎么能这样做?
答案 0 :(得分:6)
这是因为您的更改不会以您期望的方式应用。要使其按照您的意愿运行,您需要使用组:
grep -E ,'(1111)|(2222)|(3333)|(4444)|(5555)|(6666)|(7777)|(8888)|(9999)',[[:alpha:]] file
或者,可以使用backref更简洁地表达:
grep -E ,'([[:digit:]])\1{3},[[:alpha:]]' file
基本上意味着相同的数字4次。这也包括0,所以它可能会或可能不会帮助你。
编辑:
当然......只有1-9,你可以
grep -E ,'([1-9])\1{3},[[:alpha:]]' file
答案 1 :(得分:2)
试试这个正则表达式
',(1111|2222|3333|4444|5555|6666|7777|8888|9999|0000),\w'