===小鐵人 – linux 基礎篇,awk探討 7/10==
AWK會把資料以行為單位讀進來,
並且將資料(以空白orTAB)分成一個欄位一個欄位方便處理,
$0代表一整行,$1~$N代表1~N個欄位
例如說:如果資料是
A B C
1 2
讀取第一行的時候,$0=="A B C" $1=="A" $2=="B" $3=="C"
讀取第二行的時候,$0=="1 2″ $1==1 $2==2
—參數—
-F 可以自定義分隔符號
如果文檔寫這樣
tcpdump:x:72:72::/:/sbin/nologin
dbus:x:81:81:System message
apache:x:48:48:Apache:/var/www:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bas
範例一
awk -F: ‘{print $1, $2}’ /etc/passwd
這樣會以:為分隔符號顯示前面兩個欄位(tcpdump x)
範例二
也可以加入正規表示式
awk -F: ‘/root/{ print $0 }’ /etc/passwd
範例三
可以自己設定分隔符號
awk -F: ‘BEGIN{OFS="&"}/^root/{ print $1, $2 }’ /etc/passwd