如何在awk中使用打印命令的输出附加新列



我正在尝试将打印语句的结果添加为文件 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

相关内容

  • 没有找到相关文章

最新更新