1

我试图获取具有以下输出的文件并使其显示该站点,并且所需的命令在该站点上运行。意义。基本上我想在这种情况下使用 SiteID 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'
4

3 回答 3

3

试试这个sed

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

来自man sed

-i [后缀], --in-place[=后缀]

          edit files in place (makes backup if extension supplied)
于 2013-09-03T11:40:54.983 回答
2
$ awk -F\' 'NF==1{site=$0;next} {print site, $0}' file
Site1 'command;command2;command3'
Site2 'command;command2;command3'
Site3 'command;command2;command3'
于 2013-09-03T12:21:50.220 回答
0

使用paste命令

paste - - <file

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

paste -d ' ' - - <file

或者,如果您必须使用 awk:

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

或者更短的 awk 命令:

awk '{ORS=(NR%2?" ":"\n")}1' file
于 2013-09-03T11:38:05.650 回答