gpt4 book ai didi

Bash - 在文件中找到一个关键字并删除它的行

转载 作者:行者123 更新时间:2023-11-29 08:51:07 25 4
gpt4 key购买 nike

<分区>

我想给一个关键字,在一个文件中找到这个关键字出现的那一行,然后把整行删除。

这是我得到的,但它没有正常工作:

KEYWORD='domain.com'
cat /etc/hosts | grep -v "$KEYWORD" > /etc/hosts

更新

这对我有用:

sed -i_bak -e '/domain\.com/d' /etc/hosts

但是,因为我有两行“domain.com”,有没有办法告诉 sed 只删除出现确切关键字“domain.com”的行

这是/etc/hosts 的原始内容:

127.0.0.1       localhost       localhost.localdomain
222.111.22.222 hvn.domain.com
222.111.22.222 domain.com

这是命令 sed -i_bak -e '/domain\.com/d' /etc/hosts 后的结果:

127.0.0.1       localhost       localhost.localdomain

我试过了 sed -i_bak -e '/\<namourphoto\.com\.br\>/d' ~/Desktop/hosts但它没有用。

结论

这是我想出的代码(基于好人给我的帮助):

D=domain.com
DOMAIN=`echo "$D" | sed 's/\./\\\\./g'`
sed -i_bak -e "/[\t]$DOMAIN/d" /etc/hosts

注意:

  • 我算的是要删除的域前总有一个制表符

  • 我是自动转义域名的点。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com