打印每行第一個字段(passwd字段是用:隔開的):正則表達式
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '{print $1}' passwd root bin
打印每行第一個和第二個字段,並用空格隔開:bash
提示: 用逗號或" "服務器
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '{print $1,$2}' passwd 或 [root@iZryxshkbkz2x2Z ~]# awk -F ':' '{print $1" "$2}' passwd
NR: 每行的記錄號ui
NF: 字段數量變量code
FILENAME: 正在處理的文件名blog
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '{print NF,NR}' passwd 7 1 7 2 7 3 [root@iZryxshkbkz2x2Z ~]# awk -F ':' '{print FILENAME}' passwd # 每行都顯示passwd passwd passwd passwd
1 從PASSWD 打印出uid 大於10 的行:awk
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '{if($3>10)print "NR :"NR,"Uid: " $3}' passwd NR :11 Uid: 11 NR :12 Uid: 12 NR :13 Uid: 13 NR :14 Uid: 14 NR :15 Uid: 99 NR :16 Uid: 69 NR :17 Uid: 499 NR :18 Uid: 89 NR :19 Uid: 74
2 從服務器log 中找出error 發生的日期(使用正則):變量
[root@iZryxshkbkz2x2Z ~]# awk '/Error/{print $1}' fresh.log
案例1 使用正則表達式:擴展
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '$1~/^root/' passwd #必定要加 ~ root:x:0:0:root:/root:/bin/bash
案例2: 從passwd 中取出不以 ‘r’ 開頭的行數和用戶名im
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '$1!~/^r/{print "NR: "NR,"User: "$1}' passwd NR: 2 User: bin NR: 3 User: daemon NR: 4 User: adm
案例3:passwd 中UId 大於10:
[root@iZryxshkbkz2x2Z ~]# awk -F ':' '$3>10{print "NR: "NR,"Uid: ",$3}' passwd NR: 11 Uid: 11 NR: 12 Uid: 12 NR: 13 Uid: 13
案例: 從passwd中,打印出行號,Uid製表
[root@iZryxshkbkz2x2Z ~]# awk -F ':' 'BEGIN{print "NR Uid"}{print NR,$3}END{print "======FILENAME==="}' passwd NR Uid 1 0 2 1 3 2 4 3 5 4