匹配模式后添加行[重复]

问题描述 投票:3回答:2

这个问题在这里已有答案:

我有一个文件说测试具有以下值

Linux
Solaris
Fedora
Ubuntu
AIX
HPUX

如何在匹配AIX的行之后添加一个带有系统主机名的行?如果我做

echo `hostname` >> test

HPUX后,系统主机名出现在最后。

bash awk sed echo
2个回答
1
投票

用sed:

sed "s/^AIX$/& $(hostname)/" file

如果该行可以包含AIX

sed "s/AIX.*/& $(hostname)/" file

编辑:

要在匹配行后附加主机名,请尝试使用a(append)命令:

sed "/^AIX$/a $(hostname)" file

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:"")}'
© www.soinside.com 2019 - 2024. All rights reserved.