手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

簡單理解awk命令

2016-02-03 16:35:28 5661

1.awk是一個非常棒的數據處理工具,sed常常用于一個整行的處理,awk則比較傾向于一行中分成數段的數據處理,通常的模式是這樣的:

    awk ‘條件類型{動作1} 條件類型2{動作2} ....’ filename

2.cat /etc/passwd | awk -F : ‘{print $1 “ ” $4 “ ” $5}’

     

    從以上截圖看出用參數-F指定域分隔符,然后打印出/etc/passwd文件的第1列、第4列、第5列,并且每列用tab隔開

    -F 表示指定分隔符,默認的是空格,如果有文檔中有空格那么不需要用這個參數,相當于”cut -d “:” -d 1”命令;

    “ ”表示tab;

    在每個動作完成之后都會執行 另起一行;

3.cat /etc/passwd | awk -F : ‘BEGIN {print “name” “ ” “shell”} {print $1 “ ” $7} END {print “end” “ ” “end”}’

     

    awk工作流程是這樣的:先執行BEGING,然后讀取文件,讀入有/n換行符分割的一條記錄,然后將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域,隨后開始執行模式所對應的動作action。接著開始讀入第二條記錄······直到所有的記錄都讀完,最后執行END操作。

3.awk ‘/nginx/’ /etc/passwd

     

此時的awk命令就相當于grep nginx /etc/passwd命令

4.df -h | awk ‘$4>20’ 打印第四列數字大于20的行

     

5.awk幾個內建變量

    (1)NF  每一行($x)擁有的欄位總數

    (2)NR  目前awk所處理的是第幾行數據

    (3)FS   目前的分隔字節,默認的是空白鍵

    例如:cat /etc/passwd | awk -F ":" {print $1 " " $7 "  lines:" NR "  columns:" NF}

    

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: