使用linux shell命令重新格式化报告文件,将多行输出合并为一个

时间:2014-02-26 21:35:30

标签: linux sed awk format

我有一个包含以下输入的文件:

name: ted 
position:11.11.11.11"
applicationKey:88
channel:45
protocol:4
total:350

name:janet
position:170.198.80.209
applicationKey:256
channel:44
protocol:4
total:1

我喜欢看起来像这样的输出

tedd  11.11.11.11 88 45 4 350
janet 170.198.80.209 256 44 4 1

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这应该有效:

awk -F':' '{printf "%s %s",$2,ORS=NF?"":"\n"}END{print "\n"}' file

$ cat file
name:ted
position:11.11.11.11
applicationKey:88
channel:45
protocol:4
total:350

name:janet
position:170.198.80.209
applicationKey:256
channel:44
protocol:4
total:1

$ awk -F':' '{printf "%s %s",$2,ORS=NF?"":"\n"}END{print "\n"}' file
ted 11.11.11.11 88 45 4 350 
janet 170.198.80.209 256 44 4 1