如何用字符串的精确匹配替换该行

如何用字符串的精确匹配替换该行

我有一个包含以下内容的文件:dskldfsd.com

domain

domain.com

sub.domain.com

domain.main.com

anythinghere

我想删除包含单词 的行domain。使用 grep,此命令找到我想要的确切行:

grep -w '^domain$' test.txt

但我想删除domain从该行的开头到结尾包含一个单词的这一行。我想保留单词domain只是字符串一部分的行。

答案1

使用sed:

sed -i -e '/^domain$/d' test.txt

答案2

怎么样

grep -v '^domain$' test.txt

答案3

为什么 grep -v '^domain$'。根据我的理解,根据问题,它是简单的 grep -v 'domain' 。

答案4

假设您想使用标准工具,您可以这样做

grep -xF -v 'domain' test.txt >newtest.txt

-x标志grep强制匹配跨越整行,并将-F模式grep视为固定字符串而不是正则表达式。反转-v匹配的含义,以便您最终得到其中的所有行,而test.txt不仅仅是字符串domain。结果写入到newtest.txt.

相关内容