awk 案例

1 awk命令總結
  語法: 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






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章