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}' ~代表啟用正則 !~代表取反