awk
是一個強大的文本處理工具,它允許您在 Linux 和 Unix 系統中對文本文件進行分析和操作
awk 'BEGIN { OFS = " "; fmt = "%.2f\t%.2f\t%.2f\n" } { data[NR] = $1, value[NR] = $2, count[NR] = $3 } END { for (i = 1; i <= NR; i++) printf fmt, data[i], value[i], count[i] }' input.txt
這個命令的解釋如下:
BEGIN { OFS = " "; fmt = "%.2f\t%.2f\t%.2f\n" }
: 在處理輸入文件之前,設置字段分隔符(OFS)為制表符(\t),并定義一個格式字符串(fmt),用于控制輸出的格式。這里我們保留了兩位小數。
{ data[NR] = $1, value[NR] = $2, count[NR] = $3 }
: 讀取每一行的數據,并將其存儲在關聯數組 data
、value
和 count
中。其中,NR
是當前行號,$1
、$2
和 $3
分別表示第一、第二和第三個字段。
END { for (i = 1; i <= NR; i++) printf fmt, data[i], value[i], count[i] }
: 在處理完所有行后,使用循環遍歷關聯數組,并按照之前定義的格式字符串(fmt)輸出結果。
這個命令將從名為 input.txt
的文件中讀取數據,并將格式化后的輸出寫入標準輸出。如果您想將輸出保存到另一個文件中,可以使用重定向操作符 >
,如下所示:
awk 'BEGIN { OFS = " "; fmt = "%.2f\t%.2f\t%.2f\n" } { data[NR] = $1, value[NR] = $2, count[NR] = $3 } END { for (i = 1; i <= NR; i++) printf fmt, data[i], value[i], count[i] }' input.txt > output.txt
這將把格式化后的輸出保存到名為 output.txt
的文件中。