我正在尝试将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)中,而不使用中间文件?
答案 0 :(得分:1)
awk 'BEGIN{ORS=" "} {if(NR==1) {print $5} else {print $4}}' bt.B.1.log
ORS
是output 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