簡體   English   中英

如何使用awk中print命令的輸出附加新列?

[英]How to append new column using output from print command in 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

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 $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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM