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