awk 引數 『模式』 檔案awk正規表示式awk 引數 『條件(找誰)』 檔案
常用: -f 指定分隔符 取列,預設空格為分隔符
符號表達含義
*與前面的正規表示式的零個或多個出現匹配
.匹配任何單個字元
\轉義隨後的特殊字元
+匹配前面的正規表示式的一次或多次出現
^作為正規表示式的第乙個字元,表示匹配行的開始,以什麼開頭
$作為正規表示式的最後乙個字元,表示匹配行的結尾
?匹配前面的正規表示式的零次或一次出現
匹配它前面某個範圍內單個字元出現的次數,將匹配n次出現,至少匹配n次出現,匹配n和m之間的任意次出現
- awk -f":" '' /etc/passwd $1與$3之間手動新增空格分隔
- awk '/ljc/' file 顯示檔案file中包含ljc的匹配行。
- awk '!/ljc/' file 顯示檔案file中不包含ljc的匹配行。
- awk '/起始內容/,/終止內容/' file 取包含內容的區間行區間匹配
- awk '/halt|sync/' file 匹配halt或者sync的行
- awk 'nr>=5 && nr<=10' file 取5到10行,邏輯與
- awk -f: '$1~/mail/ || $3>1 ' /ljc 取$1或者mail或者$3>1的行,邏輯或
替換但不修改檔案內容:
gsub(/目標/,"替換為什麼",第幾列)
gsub(/目標/,"替換為什麼") == gsub(/目標/,"替換為什麼",$0)
例:[root@ljc ~]# awk 'gsub(/halt/,"tihuang")' liangjc.txt
end{} 模組awk讀取檔案之後執行,先計算,最後end{}顯示結果
例1:分析access.log中每個ip位址出現的次數
[root@ljc~]# awk 'end' access.log|sort -rnk2|head|column -t
58.220.223.62 12
112.64.171.98 14
114.83.184.139 122
i=i+$10 === i+=$10
[root@ljc~]# awk 'end' access.log |sort -rnk2|head |column -t
114.83.184.139 29.91mb
117.136.66.10 21.3922mb
116.216.30.47 20.4716mb
例3:分析secure檔案中每個使用者被破解的次數:破解root使用者的次數
[root@ljc~]# awk '/failedpassword/end' secure-20181219
3283
[root@ljc ~]# awk '/failedpassword/end' secure-20181219|sort-rnk2|column -t|head
218.65.30.25 68652
218.65.30.53 34326
例5:分析secure檔案中每個使用者被每個ip破解的次數[root@ljc ~]# awk '/failedpassword/end' secure-20181219|sort -rnk3|column -t|head -20
root 218.65.30.25 68652
root 218.65.30.53 34326
root 218.87.109.154 21201
1)ip位址使用的流量總數
[root@ljc ~]# awk 'end' access.log|column -t|sort-rnk2|head
114.83.184.139 29.9119mb
117.136.66.10 21.3937mb
2)ip位址的訪問次數
[root@ljc ~]# awk 'end' access.log|column-t|sort -rnk2|head
58.220.223.62 12049
112.64.171.98 10856
3)每個ip位址的訪問次數與每個ip位址使用的流量總數
[root@ljc ~]# awk 'end' access.log|column -t|sort -rnk2|head
58.220.223.62 12049 12.0192mb
112.64.171.98 10856 14.5483mb
awk一些常用命令
awk filename 列印檔案的第一列 awk filename 列印檔案的第一列和第三列 awk filename 列印完第一列,緊接著列印第二列 awk end filename 列印檔案的行數 awk nr 1 filename 列印檔案的第一列 shell裡面的兩種賦值方式 1 arg ...
awk的一些用法
awk是個非常強大的乙個工具,在我看來位列三劍客之首,下面記錄一些非常好的用法 一 比較常用的是統計tcp的狀態 netstat n awk tcp end 二 awk呼叫外部命令 awk tt.txt 將檔案裡面的第二列作為使用者,第一列作為主目錄,此命令呼叫了useradd命令,可以批量建使用者...
一些常用公共方法
根據檔案字尾名獲取檔案的mime型別 檔案字尾名,如 jpg,gif 返回該檔案的mime型別,如 image gif return sresult 根據資料表的列名取的列的序號 列名 資料表 列號,沒有找到返回 1 public static int gettablecolindexbyname ...