語法: awk [-F 分隔符 ] '命令' 文件名
awk內置變量
ARGC 命令行參數個數
ARGV 命令行參數排列
ENVIRON 支持隊列中系統環境變量的使用
FILENAME awk瀏覽的文件名
FNR 瀏覽文件的記錄數
FS 設置輸入域分隔符,等價於命令行 -F選項
NF 瀏覽記錄的域的個數
NR 已讀的記錄數
OFS 輸出域分隔符
ORS 輸出記錄分隔符
RS 控制記錄分隔符
案例1:獲取第一列
#last -n 5 | awk '{print $1}'
root
root
root
dmtsai
root
案例2:指定分隔符
單個分隔符
# awk -F ':' '{print $1}' /etc/passwd
root
bin
daemon
adm
多個分隔符,如獲取ip地址, 指定空格和:,選擇包含inet addr 的行並取13列
# ifconfig eth0|awk -F '[ :]' '/inet addr/{print $13}'
指定列
# ifconfig eth0 |awk -F '[ :]+' 'NR==2{print $4}'
10.0.0.11
案例3:如果只是顯示/etc/passwd的賬戶和賬戶對應的shell,而賬戶與shell之間以逗號分割,而且在所有行添加列名name,shell,在最後一行添加"blue,/bin/nosh"。
# awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}' /etc/passwd
案例4:搜索/etc/passwd有root關鍵字的所有行
# awk -F ':' '/root/' /etc/passwd
案例5:顯示/etc/passwd的賬戶
awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
4 sync
5 games
參考地址:https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html