Linux下如何用egrep正则表达式排除含ford列的数据行?
正确的egrep命令写法
要排除cars.txt中第一列为ford的数据行,直接使用egrep的反向匹配选项-v即可,命令如下:
egrep -v "^ford" cars.txt
命令解释:
-v:反向匹配,输出不匹配正则表达式的行^ford:匹配以ford开头的行(^表示行首位置,确保只过滤第一列是ford的行,不会误删包含ford但不在开头的内容)
如果需要忽略大小写(比如要同时排除Ford开头的行),可以加上-i选项:
egrep -vi "^ford" cars.txt
为什么你的原命令无效?
你写的^[a-zA-Z][a-z][^\rd].*逻辑完全偏离需求:这个正则试图匹配行首是「大小写字母+小写字母+非r/d字符」的行,和排除ford开头的行没有任何关联,自然无法得到期望结果。
内容的提问来源于stack exchange,提问作者Nelson
相关产品推荐
相关产品推荐

