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