Linux “如何使用”;sed中的Unix内置命令;

Linux “如何使用”;sed中的Unix内置命令;,linux,sed,Linux,Sed,我有如下文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 10.120.6.19 slatbnrduva00.ad.admin slatbnrduva00 #172.25.17.75 infrbaddc01.ad.lab 其中“slatbnrduva00”是我的主机名。现在,我尝试使用sed删除该行,如下所示 sed -i '/`hostname`/d' myhost 但它并没有

我有如下文件

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
10.120.6.19 slatbnrduva00.ad.admin slatbnrduva00
#172.25.17.75 infrbaddc01.ad.lab
其中“slatbnrduva00”是我的主机名。现在,我尝试使用sed删除该行,如下所示

sed -i '/`hostname`/d' myhost

但它并没有删除这一行。请让我知道如何在sed中使用内置linux命令

Unix内置命令需要
扩展

你可以做:

$(主机名)


`主机名“

但是背部抽搐已经过时了


要在sed中展开命令,需要使用双引号
。使用单引号
不展开

因此,这应该是最好的理由:

sed -i "/$(hostname)/d" file
使用
grep

grep -vFw "$(hostname -f)" file

-v
反转匹配,这将有效地删除包含主机名的行。
-F
将把搜索模式视为固定字符串而不是正则表达式。意思是主机名中的
表示文字
,而不是任何字符。
-w
在单词边界处匹配,意思是
>bar.baz.com
foobar.baz.com

反勾号在单引号中并不特殊,请参阅
sed-i'/slatbnrduva00/d'文件的副本
sed-i”/
主机名
/d“myhost-->