昨天快速示範了awk命令的用法,我們使用awk中的print指令,輕易地取得特定欄位的內容。awk預設是以空白符號來做為欄位的切割,但是當我們要擷取的內容中沒有空白符號,或是夾雜在特定符號中怎麼辦呢? awk可以讓我們自行設定分隔符號。
昨天快速示範了awk命令的用法,我們使用awk中的print指令,輕易地取得特定欄位的內容。awk預設是以空白符號來做為欄位的切割,但是當我們要擷取的內容中沒有空白符號,或是夾雜在特定符號中怎麼辦呢? awk可以讓我們自行設定分隔符號。
若要自行設定awk命令中的分隔符號,必須使用'FS'這個關鍵字來指定。例如FS=".”,表示將".”點句符號當成欄位分隔。但因為FS的設定必須在awk指令執行之前就要設定,所以必須再加上BEGIN這個關鍵字才行。請看以下這個例子,我們想要取得Linux kernel的次版本編號:
# 利用 uname -r 傳回Linux kernel的版本
uname -r
2.6.18-238.el5PAE
# 利用awk取得Linux kernel次版本編號: 18-238,位在第二個句點之後,第三個句點之前
# 也就是若以句點來分割欄位的話,它位在第三個欄位上
uname -r | awk 'BEGIN {FS="."}; {print $3}'
18-238
簡單說明一下,awk命令間要使用分號';’,而BEGIN的意思就是讓 FS="." 這個設定在 {print $3} 指令之前執行。
[本系列文章]
我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
awk查了一下,字典沒這個字,
owk也沒有,owl有這個字。
awk史上有名的三個計算機學機的英文名字的第一個字組成。
那個時代,教授要自己做工具。
軟體的舊石器時代。editor應該被很多人做吧,駭客文化,就是看你的code還有可改進的地方,接過來寫,有時候,接手的人還改的比原作者好。
awk可能有40歲以上了。
這例子不錯耶,看了有feeling