这个问题在这里已有答案:
我有一个文件说测试具有以下值
Linux
Solaris
Fedora
Ubuntu
AIX
HPUX
如何在匹配AIX的行之后添加一个带有系统主机名的行?如果我做
echo `hostname` >> test
HPUX后,系统主机名出现在最后。
用sed:
sed "s/^AIX$/& $(hostname)/" file
如果该行可以包含AIX
:
sed "s/AIX.*/& $(hostname)/" file
编辑:
要在匹配行后附加主机名,请尝试使用a
(append)命令:
sed "/^AIX$/a $(hostname)" file
你可以试试跟随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:"")}'