awk - pattern scanning and processing language
文字以行為單位進行處理,對於日誌處理非常有用,然後配合其他命令可以做一些統計的工作。
awk根據空格或者製表符將一行分割成若干字段,$1
、$2
、$3
等依次表示後面的各個字段,$0
表示整行內容。
假如有nginx的日誌檔案 access.log 如下:
61.219.11.153 - - [28/jul/2019:13:12:57 +0800] "get / http/1.1" 400 173 "-" "-" "-"需要獲取所有訪問的ip列表
awk '' access.log
結果如下:
118.24.167.225
118.24.167.225
61.219.11.153
如果你的內容不是以空格和製表符作為分割符,則可以通過-f
引數指定分隔符
如你需要看/etc/passwd的所有使用者資訊
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
命令如下
awk -f ':' '' /etc/passwd
root
bindaemon
adm
輸出最後乙個字段
awk '' access.log
nf
變數代表每行的字段數,還有其他有用的一些變數
filename:當前檔名
fs:字段分隔符,預設是空格和製表符。
rs:行分隔符,用於分割每一行,預設是換行符。
ofs:輸出欄位的分隔符,用於列印時分隔字段,預設為空格。
ors:輸出記錄的分隔符,用於列印時分隔記錄,預設為換行符。
ofmt:數字輸出的格式,預設為%.6g。
輸出只包含某個ip的行
awk '/39.71.61.171/ ' access.log
if語句
awk -f ':' '' /etc/passwd
awk常用命令
awk命令詳解 2009年03月31日 星期二 22 22 awk指令詳解 1.命令簡述 awk將每個輸入行識別成一條記錄,而將那一行上的每個單詞域識別成乙個字段 2.命令選項 f 指定分隔符 nf 單行最後乙個分段 nr 行數 等同 and 語句兩邊必須同時匹配為真 等同 or 語句兩邊同時或其中...
awk常用命令
1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第一列 sed n 2,1p filename awk pri...
awk常用命令
awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...