2016年11月7日 星期一

電腦 Linux-awk實用技巧-01

字串處理工具: Awk

Awk 的使用例子:

# awk ‘{ print }’ /etc/passwd

以上指令將 /etc/passwd 作為 awk 的輸入檔案,並會將 /etc/passwd 檔案的內容逐行輸出。但這樣使用 awk 看不出它的作用,以下是另一個例子:

# awk -F”:” ‘{ print $1 }’ /etc/passwd

以上例子使用 awk 時加入了 -F 選項,並指定每一行用 “:” 作為分隔字串。而 print $1 的意思是印出分隔後的第一組字串。輸出結果是系統所有帳號的使用者名稱。

如果將 awk 用管線 (pipe) 和其他指令配合的話,作用會更加大,例如用 “ls -l /etc” 的話,會將/etc 的內容及其他檔案/目錄資料印出,但我不想看建立日期及檔案體積等資訊,只要看檔案/目錄及其權限,可以這樣做:

# ls -l /etc | awk ‘{print $1 “t” $9}’

因為 awk 預設會用 tab 或空白字串作為分隔,所以今次不用 -F 選擇。以上會將 “ls -l /etc” 的輸出作為 awk 的輸入內容,而會印出分隔後第一及第九組字串,兩個字串中間會用 “t” 分開。


#awk -F, 'NR==2 {print $2}'  /etc/passwd
-F,  以 , 為分隔字串。
NR==2 第二列

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。