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-->