【发布时间】:2017-12-28 14:58:51
【问题描述】:
我有一个文件说 test 具有以下值
Linux
Solaris
Fedora
Ubuntu
AIX
HPUX
如何在匹配 AIX 的行之后添加带有系统主机名的行?如果我这样做了
echo `hostname` >> test
系统主机名在 HPUX 之后。
【问题讨论】:
我有一个文件说 test 具有以下值
Linux
Solaris
Fedora
Ubuntu
AIX
HPUX
如何在匹配 AIX 的行之后添加带有系统主机名的行?如果我这样做了
echo `hostname` >> test
系统主机名在 HPUX 之后。
【问题讨论】:
您能否尝试关注awk,如果这对您有帮助,请告诉我。
awk -v host=$(hostname) '$0 == "AIX"{print $0 RS host;next} 1' Input_file
编辑:在这里也添加 1 个解决方案。
awk -v host=$(hostname) '{printf("%s%s\n",$0,$0=="AIX"?RS host:"")}'
【讨论】:
awk -v host=$(hostname) '{printf("%s%s\n",$0,$0~/^AIX$/?RS host:"")}'欢呼。
使用 sed:
sed "s/^AIX$/& $(hostname)/" file
如果该行可以包含 AIX:
sed "s/AIX.*/& $(hostname)/" file
编辑:
要在匹配行后附加主机名,请尝试a(append) 命令:
sed "/^AIX$/a $(hostname)" file
【讨论】: