awk相關整理

總結一下,awk的相關功能:

  awk '{print $0}'

 在 Awk 中,變量 $0 表示整個當前行,因此 printprint $0 的作用完全相同

 

awk -F":" '{print $1 " " $3}' /etc/passwd

  -F : 參數指定行的內容用的分隔符,如上,使用的是 : 號做的分割處理

 

  比如:

 

awk -F":" '{print "username:" $1  "\t\tuid:" $3}' /etc/passwd
 
顯示爲:

 

username:root		uid:0
username:daemon		uid:1
username:bin		uid:2
username:sys		uid:3
username:sync		uid:4
username:games		uid:5

 

 BEGIN和END

     awk允許在執行文本文件之前,執行相應的初始化代碼,同樣,awk 也支持在文件處理完成以後執行相應的代碼,這個可以用定義END專用代碼塊來做到(通常情況下,END 塊用於進行最終計算或打印應該在輸出流結尾處出現的彙總信息)。

 

  正則表達式的查找

     比如,需要查找包含有 "hp"這個詞的行;

 

awk '/hp/ {print}' /etc/passwd
 

     顯示的結果爲:

hplip:x:112:7:HPLIP system user,,,:/var/run/hplip:/bin/false

 

   表達式代碼塊

     尋找以":"分隔,第一列爲"ivanzhangwb"的行:

    

awk -F":" '$1 =="ivanzhangwb" {print}' /etc/passwd
     

     結果顯示爲:

 

ivanzhangwb@ivanzhangwb-notebook:~$ awk -F":" '$1 =="ivanzhangwb" {print}' /etc/passwd

ivanzhangwb:x:1000:1000:ivanzhangwb,,,:/home/ivanzhangwb:/bin/bash
 

 

   
 條件語句
   
awk -F":" '{if($1=="ivanzhangwb"){print}}' /etc/passwd
     
 特殊變量
   NF: 字段數量
    打印出每行的字段數量爲多少.
 
 awk '{print NF}' /etc/passwd
 
 RS變量 和 OPS 變量.  
  RS 變量告訴 awk 當前記錄什麼時候結束,新記錄什麼時候開始。
  OFS 變量表示每個字符串之間打印的間隔符號.

 

 

 

 

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