1. 程式人生 > >awk命令基礎和進階

awk命令基礎和進階

---恢復內容開始---

awk命令基礎

awk不僅僅是linux系統的一個命令,而且是一種語言,可以用來處理資料和生成報告。

1. --version來檢視awk的版本

2.awk '條件‘ filename

3.awk -F指定awk按照什麼標誌進行檔案的切割,將原檔案切割成一列一列的。如果我們不指定-F引數,awk預設按照空格進行文字的切割。{}中的print代表輸出,$代表取列,$0就是預設輸出檔案的全部內容,$NF就是預設輸出檔案的最後一列

4.awk的使用格式:

awk options 'pattern{action}' filename

       (引數) (模式)(動作)模式是條件,是用來篩選資料的。動作是幹什麼        先模式後動作;先根據引數切割,根據單引號裡面的模式進行內容過濾,符合模式條件的再動作輸出。

 5.貪婪模式  -F “空格” 預設貪婪

 6.-F指定分隔符為冒號

 7.awk -F 引數 ‘BEGIN{}模式{動作}END{}’ 檔名

    BEGIN:告訴awk,資料要如何讀;END:告訴awk程式要如何結束。換行符是\n,NR是行號,RS是讀入換行符;ORS是     輸出換行符。

 8.sort命令:sort不加引數預設按26個英文字母;加-n按數字排序;加r是逆轉排序;加k是從第幾行排序。

 awk命令進階

 1. awk的模式有四種:正則表示式,比較表示式,範圍模式,特殊模式BEGIN和END。

    正則表示式作為模式

    第九列是200的ip地址

    直接在模式裡面啟用'$9~/^200$/{print $1}' ~代表啟用正則 !~代表取反

    ’BEGIN{} 模式(動作) END{}'

    BEGIN:在開頭執行一次;模式(動作):讀取檔案全過程都執行;END:在結尾執行一次

  2.在awk中,預設初始值從0開始

     +加-減*乘/除**乘方

     awk '{x=x+1;print x}' test (檔案裡有幾行就輸出幾行)

     awk '{x=x+1}END{print x} ' test 檔案一共多少行輸出最終行號 (i++)= (i=i+1)

     awk '/^$/{i++}END{print i}' 統計有多少空行

     tr是替換命令 在程式設計裡for是迴圈

     awk '{h[$1]=h[$1]+$2}END{for(i in h)print i,h[i]}' test

 

---恢復內容結束---

awk命令基礎

awk不僅僅是linux系統的一個命令,而且是一種語言,可以用來處理資料和生成報告。

1. --version來檢視awk的版本

2.awk '條件‘ filename

3.awk -F指定awk按照什麼標誌進行檔案的切割,將原檔案切割成一列一列的。如果我們不指定-F引數,awk預設按照空格進行文字的切割。{}中的print代表輸出,$代表取列,$0就是預設輸出檔案的全部內容,$NF就是預設輸出檔案的最後一列

4.awk的使用格式:

awk options 'pattern{action}' filename

       (引數) (模式)(動作)模式是條件,是用來篩選資料的。動作是幹什麼        先模式後動作;先根據引數切割,根據單引號裡面的模式進行內容過濾,符合模式條件的再動作輸出。

 5.貪婪模式  -F “空格” 預設貪婪

 6.-F指定分隔符為冒號

 7.awk -F 引數 ‘BEGIN{}模式{動作}END{}’ 檔名

    BEGIN:告訴awk,資料要如何讀;END:告訴awk程式要如何結束。換行符是\n,NR是行號,RS是讀入換行符;ORS是     輸出換行符。

 8.sort命令:sort不加引數預設按26個英文字母;加-n按數字排序;加r是逆轉排序;加k是從第幾行排序。

 awk命令進階

 1. awk的模式有四種:正則表示式,比較表示式,範圍模式,特殊模式BEGIN和END。

    正則表示式作為模式

    第九列是200的ip地址

    直接在模式裡面啟用'$9~/^200$/{print $1}' ~代表啟用正則 !~代表取反