![如何用字符串的精确匹配替换该行](https://linux22.com/image/138475/%E5%A6%82%E4%BD%95%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E7%B2%BE%E7%A1%AE%E5%8C%B9%E9%85%8D%E6%9B%BF%E6%8D%A2%E8%AF%A5%E8%A1%8C.png)
我有一个包含以下内容的文件: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
.