awk命令的執行過程
#滿足
awk從檔案中讀取一行內容到記憶體中--》判斷是否滿足條件--滿足---執行對應的命令---輸出到螢幕
#不滿足
awk從檔案中讀取一行內容到記憶體中--》判斷是否滿足條件--不滿足---繼續讀取檔案裡的內容直到檔案最後
awk命令的語法awk 引數 '模式' 檔案
awk 引數 '條件(找誰)' 檔案
~:表示包含的意思
gsub:表示替換,語法(gsbu(/目標/,"替換成什麼",第幾列))
akw命令之查詢#示例檔案
[root@web02 files]# cat reg.txt
zhang dandan 41117397 :250:100:175
zhang xiaoyu 390320151 :155:90:201
meng feixue 80042789 :250:60:50
wu waiwai 70271111 :250:80:75
liu bingbing 41117483 :250:100:175
wang xiaoai 3515064655 :50:95:135
zi gege 1986787350 :250:168:200
li youjiu 918391635 :175:75:300
lao nanhai 918391635 :250:100:175
#顯示xiaoyu的姓氏和id號碼
[root@web02 files]# awk '/xiaoyu/' reg.txt
zhang xiaoyu
#顯示所有以41開頭的id號碼的人的全名和id號碼
[root@web02 files]# awk '$3~/^41/' reg.txt
zhang dandan 41117397
liu bingbing 41117483
#顯示所有id號碼最後一位數字是1或5的人的全名
[root@web02 files]# awk '$3~/[15]$/' reg.txt
zhang xiaoyu
wu waiwai
wang xiaoai
li youjiu
lao nanhai
[root@web02 files]#
awk命令之替換[root@web02 files]# cat reg.txt
zhang dandan 41117397 :250:100:175
zhang xiaoyu 390320151 :155:90:201
meng feixue 80042789 :250:60:50
wu waiwai 70271111 :250:80:75
liu bingbing 41117483 :250:100:175
wang xiaoai 3515064655 :50:95:135
zi gege 1986787350 :250:168:200
li youjiu 918391635 :175:75:300
lao nanhai 918391635 :250:100:175
#顯示xiaoyu的捐款.每個值時都有以$開頭.如$520$200$135
[root@web02 files]# awk 'gsub(/:/,"$",$4)' reg.txt
zhang dandan 41117397 $250$100$175
zhang xiaoyu 390320151 $155$90$201
meng feixue 80042789 $250$60$50
wu waiwai 70271111 $250$80$75
liu bingbing 41117483 $250$100$175
wang xiaoai 3515064655 $50$95$135
zi gege 1986787350 $250$168$200
li youjiu 918391635 $175$75$300
lao nanhai 918391635 $250$100$175
[root@web02 files]#
awk命令之begin模式:主要用來測試與計算[root@web02 ~]# awk 'begin'
220
awk命令之end模式:用來計算顯示最終統計結果[root@web02 ~]# #統計/etc/services檔案裡面的空行數量
[root@web02 ~]# awk '/^$/end' /etc/services
16
awk命令之陣列:用來統計與計算
[root@web02 ~]# cat url.txt
#方法一:使用單個新增
[root@web02 ~]# awk -f '[/.]+' 'end' url.txt
3 1#方法二:使用for迴圈
[root@web02 ~]# awk -f '[/.]+' 'end' url.txt
www 3
*** 1
post 2
[root@web02 ~]#
secure系統日誌分析練習
誰在破解你的密碼(failed password 每個ip位址出現的次數)
[root@web02 files]# awk '/failed password/end' secure-20161219
218.65.30.126 17163
218.65.30.61 17163
125.16.71.175 4
169.46.38.74 9
183.136.238.78 30
218.2.0.16 10
91.223.133.33 2
222.186.50.206 3289
51.254.143.19 9
113.207.7.3 316
111.73.46.156 3206
123.31.34.141 39
187.115.73.70 9
182.100.67.119 17163
218.87.109.150 17163
218.87.109.151 17163
..........
分析系統的每個使用者被破解的次數[root@web02 files]# awk '/failed/end' secure-20161219 |head
odoo 3
2735 1
oleta 3
ubuntu1 1
imcmon 3
ubuntu2 1
ubuntu3 1
ubuntu 7
nagiosuser 3
erp 3
[root@web02 files]#
linux 三劍客之 awk
awk是一種程式語言,用於在linux unix下對文字和資料進行處理。資料可以來自標準輸入 stdin 乙個或多個檔案,或其它命令的輸出。它支援使用者自定義函式和動態正規表示式等先進功能,是linux unix下的乙個強大程式設計工具。它在命令列中使用,但更多是作為指令碼來使用。awk有很多內建的...
linux三劍客之awk
linux三劍客 grep sed awk 與sed類似,awk是行處理器 相比較螢幕處理的優點,在處理龐大檔案時不會出現記憶體溢位或是處理緩慢的問題,它可以對每一行進行切片處理 awk處理過程 依次對每一行進行處理,然後輸出 awk命令形式 awk f f v begin end file f f...
文字三劍客之 awk命令
awk 文字處理 根據條件去擷取字段 awk難點 1.正則表達 2.if 3.內建函式 4.內建變數 5.for,陣列array awk 預設的分隔符是空白 空格 tab 輸入分隔符 f 輸出分隔符 1 代表第1個字段 2 代表第2個字段 以此類推 0 代表整行 正規表示式和bash一致 數 算符 ...