我正在尝试将打印语句的结果添加为文件 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
目录B.1.log:
以秒为单位的时间 = 260.37
总进程数 = 1
输出: (t1.dat)
260.37
1
期望输出:
260.37 1
但是,就目前而言,awk 将其作为 t1.dat 中的新行附加。如何在不使用中间文件的情况下让它作为新列附加到现有文件(在本例中为 t1.dat)中?
awk 'BEGIN{ORS=" "} {if(NR==1) {print $5} else {print $4}}' bt.B.1.log
ORS
是输出记录分隔符的缩写。也许埃德·莫顿(Ed Morton)有更简单的方法。
或者:
awk '{if(NR==1) {printf $5} else {printf " "$4"n"}}' bt.B.1.log
你想要最后换行符吗?
另一种方式:
$ awk -"F=" '{ result = $2; getline; result = (result $2); print result; }' bt.B.1.log
260.37 1