Unix Sed命令匹配模式
我想在linux中使用sed命令删除文件中的行,但问题是 如果要匹配,则它也匹配abcd.efgh。我只想匹配而不是abcd.efgh . 我在谷歌上搜索过,但没有找到任何解决方案。使用awk,您可以:Unix Sed命令匹配模式,unix,sed,Unix,Sed,我想在linux中使用sed命令删除文件中的行,但问题是 如果要匹配,则它也匹配abcd.efgh。我只想匹配而不是abcd.efgh . 我在谷歌上搜索过,但没有找到任何解决方案。使用awk,您可以: awk '/abcd/ && !/abcd\.efgh/' file 它将匹配abcd但不是abcd的行。efgh也许这正是您想要的: sed -i '/^abcd$/d' file 它只会删除与它完全匹配的行。这可能适用于您: perl -lne 'print if(/\b
awk '/abcd/ && !/abcd\.efgh/' file
它将匹配abcd但不是abcd的行。efgh也许这正是您想要的:
sed -i '/^abcd$/d' file
它只会删除与它完全匹配的行。这可能适用于您:
perl -lne 'print if(/\babcd\b/)' your_file
sed '/abcd\.efgh/b;/abcd/d' file
或者换句话说:
sed '/abcd/{/abcd\.efgh/!d}' file
你需要更加精确。这两种情况下的线条是什么样的?您可能只需要一个“$”。发布一些示例输入和预期输出。