溫馨提示×

awk在linux中如何輸出格式化

小樊
127
2024-12-28 07:12:51
欄目: 智能運維

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

這個命令的解釋如下:

  1. BEGIN { OFS = " "; fmt = "%.2f\t%.2f\t%.2f\n" }: 在處理輸入文件之前,設置字段分隔符(OFS)為制表符(\t),并定義一個格式字符串(fmt),用于控制輸出的格式。這里我們保留了兩位小數。

  2. { data[NR] = $1, value[NR] = $2, count[NR] = $3 }: 讀取每一行的數據,并將其存儲在關聯數組 data、valuecount 中。其中,NR 是當前行號,$1、$2$3 分別表示第一、第二和第三個字段。

  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 的文件中。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女