如何使用反向匹配正则表达式(例如 grep -v)?
我想要 invernt
sed '/[Ss][0-9]*[Ee][0-9]*/d' ${Src}
喜欢
grep -ev '[Ss][0-9]*[Ee][0-9]*' ${Src}
答案1
我假设你的意思是grep -ve '[Ss][0-9]*[Ee][0-9]*'
(因为grep -ev '[Ss][0-9]*[Ee][0-9]*'
会尝试匹配v
名为的文件中模式[Ss][0-9]*[Ee][0-9]*
)。
如果是这样,那么请sed '/pattern/d'
记住已经反向匹配 - 删除以下行做匹配模式,它会打印那些匹配的不是匹配。如果你想反转那(即相当于普通的grep -e 'pattern'
)那么你可以使用
sed '/[Ss][0-9]*[Ee][0-9]*/!d'
(删除以下行不匹配[Ss][0-9]*[Ee][0-9]*
即打印那些做)或者更直接地禁用默认打印,然后仅打印匹配的行,即
sed -n '/[Ss][0-9]*[Ee][0-9]*/p'