Sed命令匹配模式UNIX

时间:2014-07-23 12:39:58

标签: unix sed

我想在linux中使用sed命令从文件中删除行,但问题是这样 如果,我想匹配" abcd"它匹配" abcd.efgh"也。我只想不匹配" abcd.efgh" 。我在谷歌搜索但没有找到任何解决方案。

4 个答案:

答案 0 :(得分:0)

使用awk即可:

awk '/abcd/ && !/abcd\.efgh/' file

它会匹配abcd但不是abcd.efgh

的行

答案 1 :(得分:0)

也许这就是你想要的:

sed -i '/^abcd$/d' file

它只会删除与其完全匹配的行。

答案 2 :(得分:0)

perl -lne 'print if(/\babcd\b/)' your_file

答案 3 :(得分:0)

这可能适合你(GUN sed):

sed '/abcd\.efgh/b;/abcd/d' file

或换句话说:

sed '/abcd/{/abcd\.efgh/!d}' file
相关问题