awk例子

henglinux發表於2018-09-01

變數名    含義 
ARGC   命令列變元個數 
ARGV   命令列變元陣列 
FILENAME   當前輸入檔名 
FNR   當前檔案中的記錄號 
FS   輸入域分隔符,預設為一個空格 
RS   輸入記錄分隔符 
NF   當前記錄裡域個數 
NR   到目前為止記錄數 
OFS   輸出域分隔符 
ORS   輸出記錄分隔符 

1、awk `/101/`   
file      顯示檔案file中包含101的匹配行。 
   awk `/101/,/105/`  file 
   awk `$1 == 5`   
file 
   awk `$1 == “CT”` 
  file    注意必須帶雙引號 
   awk `$1 * $2 >100 `
  file  
   awk `$2 >5 && $2<=15` 
file

2、awk `{print NR,NF,$1,$NF,}` file    
顯示檔案file的當前記錄號、域數和每一行的第一個和最後一個域。 
   awk `/101/ {print $1,$2 + 10}` file
      顯示檔案file的匹配行的第一、二個域加10。 
   awk `/101/ {print $1$2}`  file 
   awk `/101/ {print $1 $2}` file
      顯示檔案file的匹配行的第一、二個域,但顯示時域中間沒有分隔符。

3、df | awk `$4>1000000 `         通過管道符獲得輸入,如:顯示第4個域滿足條件的行。

4、awk -F “|” `{print $1}`   file        
按照新的分隔符“|”進行操作。 
   awk  `BEGIN { FS=”[:  |]” } 
   {print $1,$2,$3}` 
     file        
通過設定輸入分隔符(FS=”[:  |]”)修改輸入分隔符。 

   Sep=”|” 
   awk -F $Sep `{print $1}`  file  
按照環境變數Sep的值做為分隔符。    
   awk -F `[ : |]` `{print $1}` file  
按照正規表示式的值做為分隔符,這裡代表空格、:、TAB、|同時做為分隔符。 
   awk -F `[][]`    `{print $1}` file  
按照正規表示式的值做為分隔符,這裡代表[、]

5、awk -f awkfile 
  file         通過檔案awkfile的內容依次進行控制。 
   cat awkfile 
/101/{print “