如何使用awk中print命令的输出追加新列?

时间:2015-04-22 18:44:38

标签: linux bash awk gnuplot

我正在尝试将print语句的结果添加为文件t1.dat中的新列:

awk '/Time in seconds/ {print $5}' bt.B.1.log > t1.dat
awk '/Total processes/ {print $4; exit}' bt.B.1.log >> t1.dat

bt.B.1.log的内容:

以秒为单位的时间= 260.37
总流程= 1

输出:(t1.dat)

260.37
1

期望的输出:

260.37 1

但是,现在,awk将它作为t1.dat中的新行追加。如何将它作为新列附加到现有文件(在本例中为t1.dat)中,而不使用中间文件?

2 个答案:

答案 0 :(得分:1)

awk 'BEGIN{ORS=" "} {if(NR==1) {print $5} else {print $4}}' bt.B.1.log

ORSoutput records separator的缩写。也许Ed Morton有一种更简单的方法。

可替换地:

awk '{if(NR==1) {printf $5} else {printf " "$4"\n"}}' bt.B.1.log

你想在结尾处换行吗?

答案 1 :(得分:0)

另一种方式:

$ awk -"F=" '{ result = $2; getline; result = (result $2); print result; }' bt.B.1.log
 260.37 1