我有一个文件说测试,其中包含以下值
Linux
Solaris
Fedora
Ubuntu
AIX
HPUX
如何在符合AIX的行之后添加带有系统主机名的行?如果我做
echo `hostname` >> test
系统主机名在HPUX之后位于最后。
答案 0 :(得分:1)
您能否请关注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:"")}'
答案 1 :(得分:1)
使用sed:
sed "s/^AIX$/& $(hostname)/" file
如果该行包含 AIX
:
sed "s/AIX.*/& $(hostname)/" file
修改强>
要在匹配行后附加主机名,请尝试a
(追加)命令:
sed "/^AIX$/a $(hostname)" file