Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix Sed命令匹配模式_Unix_Sed - Fatal编程技术网

Unix Sed命令匹配模式

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

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

使用awk,您可以:

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

你需要更加精确。这两种情况下的线条是什么样的?您可能只需要一个“$”。发布一些示例输入和预期输出。