鳥哥私房菜重溫6

  1. awk  命令胡使用shell

    awk是一款功能強大的文字處理軟件,能夠以列爲單位,來處理並顯示出咱們須要的信息,其用法以下:數組

    1)awk option  'parttern { cmd }......'bash

    awk 經常使用的選項是-F 指定 列的分隔符ide

    awk - F : 'partern {action}' 就是每行以:做爲分隔符,第一列爲$1,$2,.....其中$0表明整行。awk中有一個內置的變量NF,指當前行的列的個數。一般用$NF表示當前行的最後一列。ci

     awk -F : '{print $1,$NF}' /etc/passwd 輸出/etc/passwd的第一列和最後一列。cmd

    2)awk parttern的類型it

      BEGIN 是awk內置的parttern,在awk處理各行以前,執行BEGIN後面的cmd.io

      END 是awk內置的parttern,在awk處理各行以後,執行END後面的cmd.ast

     awk -F : 'BEGIN {printf "%-10s%-10s\n","first","last"}{printf "%-10s%-10s\n",$1,$NF}' /etc/passwd  輸出每一行的第一列和第七列,在輸出以前,打印一個信息提示行。class

      判斷表達式

       awk -F : '$3 >=500 {print $1,$NF}' /etc/passwd 輸出/etc/passwd中UID大於500的用戶名及SHELL。

       正則表示式

        awk -F : ' $NF ~ /bash$/ {print $1,$NF}' /etc/passwd

    3)awk還支持自定義變量,支持數組,for,while ,switch case等語句。

        awk -F: -v count=0 '$NF ~ /bash$/{count++;print $1,$NF} END{print "total",count}' /etc/passwd 輸出 /etc/passwd中,shell是bash的用戶名及shell,最後統計個數。

    awk -F: '$NF ~ /bash$/{count++;print $1,$NF} END{print "total",count}' /etc/passwd 也能夠實現上述功能,awk裏面的變量能夠在使用的時候再定義,其默認值爲0。

     awk -F : 'BEGIN {printf "%-10s%-10s\n","shelltype","count"}{shell[$NF]++}END{for (i in shell) print i,shell[i]}' /etc/passwd 統計/etc/passwd中,每種不一樣類型的SHELL的出現次數。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息