[dywang@dywmac zzz]$ gawk -W help | grep ^Example -A2 Examples: gawk '{ sum += $1 }; END { print sum }' file gawk -F: '{ print $1 }' /etc/passwd
[dywang@dywmac zzz]$ gawk -F: '{print $1 "\t" $3}' /etc/passwd | head -4 root 0 bin 1 daemon 2 adm 3
-F
選項指定 passwd 以冒號 ":" 作為欄位的分隔,而是在單引號內,也就是 awk 程式本身設定分隔符號,則執行結果如下,第一行還是以「空白」做為分隔符號,所以無法正確輸出。
[dywang@dyw219 zzz]$ gawk 'FS=":" {print $1 "\t" $3}' /etc/passwd | head -4 root:x:0:0:root:/root:/bin/bash bin 1 daemon 2 adm 3
FS=":"
的設定以 BEGIN 先設定就可以解決第一行輸出不正確的問題。
[dywang@dyw219 zzz]$ gawk 'BEGIN{FS=":"} {print $1 "\t" $3}' /etc/passwd | head -4 root 0 bin 1 daemon 2 adm 3
運算單元 | 代表意義 |
> |
大於 |
< |
小於 |
>= |
大於或等於 |
<= |
小於或等於 |
== |
等於 |
!= |
不等於 |
[dywang@dywmac zzz]$ gawk 'BEGIN{FS=":"} $3<=4 {print $1 "\t" $3}' /etc/passwd root 0 bin 1 daemon 2 adm 3 lp 4
[dywang@dywmac zzz]$ gawk 'BEGIN{FS=":"} $3>=500 {print $1 "\t" $3}' /etc/passwd nfsnobody 65534 dywang 500 mockbuild 502 linda 503
[dywang@dywIssd zzz]$ vim passwd.awk [dywang@dywIssd zzz]$ cat passwd.awk BEGIN{ FS=":" } $3>=500 { print $1 "\t" $3 }
[dywang@dywIssd zzz]$ awk -f passwd.awk /etc/passwd nfsnobody 65534 dywang 500 linda 501