复制服务器IP并在命令之前添加它

时间:2013-09-03 11:35:38

标签: sed awk

我试图获取具有以下输出的文件,并使其显示该站点,并在该站点上运行所需的命令。含义。基本上我想在这种情况下使用Site1 Site1并将其添加到需要在该站点上运行的命令的前面。

当前档案

Site1
'command;command2;command3'
Site2
'command;command2;command3'
Site3
'command;command2;command3'

预期输出为:

Site1 'command;command2;command3'
Site2 'command;command2;command3'
Site3 'command;command2;command3'

3 个答案:

答案 0 :(得分:3)

试试这个sed

sed -i.bak 'N;s/\n//g' yourfile.txt

来自man sed

-i [SUFFIX], - in-place [= SUFFIX]

          edit files in place (makes backup if extension supplied)

答案 1 :(得分:2)

$ awk -F\' 'NF==1{site=$0;next} {print site, $0}' file
Site1 'command;command2;command3'
Site2 'command;command2;command3'
Site3 'command;command2;command3'

答案 2 :(得分:0)

使用paste命令

paste - - <file

你想要一个空格作为分隔符吗

paste -d ' ' - - <file

或者如果你必须使用awk:

awk '{printf "%s"(NR%2?" ":"\n"), $0}' file

或者更短的awk命令:

awk '{ORS=(NR%2?" ":"\n")}1' file