1.awk功能和實用形式
awk指定讀取文件中的某一行的某個字段
awk 可以設置條件來輸出文件中m行到n行中每行的指定的k字段,使用格式如下
awk ‘NR==m,NR==n {print $k}’ path/filename
m,n,k表示實在的數值。如果要用變量來表示m,n的值,則變量需要用單引號將其引起來。
NR,{print }是awk命令在此用法下的規定字段;path/filename表示讀取文件的路徑及文件名。
當要讀取某一行的內容的k字段時,使用格式如下
awk ‘NR==m {print $k}’ path/filename
m,k與以上的含義一致,分別表示要讀取的行數和當前行的第k字段。
2. 腳本使用awk命令舉例
2.1 腳本代碼
例:awk_each_line.sh
圖1.awk_each_line.sh
【7-8】兩行表示讀取當前行($NUM)的第一、第二個字段內容賦值給變量S_TD,T_NUM。注意:引用行變量($NUM)時需要用單引號(‘’)引起引用變量,只有這樣bash才能識別。
2.2 文件內容和腳本運行結果
id_num.txt文件中的內容如下,與以上腳本在同一個目錄之下:
圖2.id_num.txt文件內容
腳本運行結果為:
圖3.awk_each_line.sh運行結果
其中0001-0004表示每行內容中的第一個字段,1-4表示每行內容的第二個字段。
這就表示成功讀取了文件中的每一行內容的不同字段且將其賦給變量,而不是對文件中所有內容進行列表。