如何使用 awk 中 print 命令的输出附加新列?
How to append new column using output from print command in awk?
我正在尝试将打印语句的结果作为新列添加到文件 t1.dat:
awk '/Time in seconds/ {print }' bt.B.1.log > t1.dat
awk '/Total processes/ {print ; 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)?
awk 'BEGIN{ORS=" "} {if(NR==1) {print } else {print }}' bt.B.1.log
ORS
是output records separator的缩写。也许 Ed Morton 有更简单的方法。
或者:
awk '{if(NR==1) {printf } else {printf " ""\n"}}' bt.B.1.log
最后要不要换行?
另一种方式:
$ awk -"F=" '{ result = ; getline; result = (result ); print result; }' bt.B.1.log
260.37 1
我正在尝试将打印语句的结果作为新列添加到文件 t1.dat:
awk '/Time in seconds/ {print }' bt.B.1.log > t1.dat
awk '/Total processes/ {print ; 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)?
awk 'BEGIN{ORS=" "} {if(NR==1) {print } else {print }}' bt.B.1.log
ORS
是output records separator的缩写。也许 Ed Morton 有更简单的方法。
或者:
awk '{if(NR==1) {printf } else {printf " ""\n"}}' bt.B.1.log
最后要不要换行?
另一种方式:
$ awk -"F=" '{ result = ; getline; result = (result ); print result; }' bt.B.1.log
260.37 1