一段linux上統計平均響應時間的awk指令碼
阿新 • • 發佈:2019-02-05
grep '15:10:00' daily-2015-12-20.log| grep 'RESPONSE'|awk 'BEGIN {t = 0;} {split($10,a,"=");t+=a[2];} END {print t/NR;}'
其中NR代表已經處理的行數,常見的awk內建資料見下表
屬性 | 說明 |
---|---|
$0 | 當前記錄(作為單個變數) |
當前記錄的第n個欄位,欄位間由FS分隔 | |
FS | 輸入欄位分隔符 預設是空格 |
NF | 當前記錄中的欄位個數,就是有多少列 |
NR | 已經讀出的記錄數,就是行號,從1開始 |
RS | 輸入的記錄他隔符默 認為換行符 |
OFS | 輸出欄位分隔符 預設也是空格 |
ORS | 輸出的記錄分隔符,預設為換行符 |
ARGC | 命令列引數個數 |
ARGV | 命令列引數陣列 |
FILENAME | 當前輸入檔案的名字 |
IGNORECASE | 如果為真,則進行忽略大小寫的匹配 |
ARGIND | 當前被處理檔案的ARGV標誌符 |
CONVFMT | 數字轉換格式 %.6g |
ENVIRON | UNIX環境變數 |
ERRNO | UNIX系統錯誤訊息 |
FIELDWIDTHS | 輸入欄位寬度的空白分隔字串 |
FNR | 當前記錄數 |
OFMT | 數字的輸出格式 %.6g |
RSTART | 被匹配函式匹配的字串首 |
RLENGTH | 被匹配函式匹配的字串長度 |
SUBSEP | 陣列分隔符。將(I,J)轉換為 I SUBSEP J, 模擬多維陣列用 |
字串處理函式
函式 | 說明 |
---|---|
gsub( Ere, Repl, [ In ] ) | 除了正則表示式所有具體值被替代這點,它和 sub 函式完全一樣地執行,。 |
sub( Ere, Repl, [ In ] ) | 用 Repl 引數指定的字串替換 In 引數指定的字串中的由 Ere 引數指定的擴充套件正則表示式的第一個具體值。sub 函式返回替換的數量。出現在 Repl 引數指定的字串中的 &(和符號)由 In 引數指定的與 Ere 引數的指定的擴充套件正則表示式匹配的字串替換。如果未指定 In 引數,預設值是整個記錄($0 記錄變數)。 |
index( String1, String2 ) | 在由 String1 引數指定的字串(其中有出現 String2 指定的引數)中,返回位置,從 1 開始編號。如果 String2 引數不在 String1 引數中出現,則返回 0(零)。 |
length [(String)] | 返回 String 引數指定的字串的長度(字元形式)。如果未給出 String 引數,則返回整個記錄的長度($0 記錄變數)。 |
blength [(String)] | 返回 String 引數指定的字串的長度(以位元組為單位)。如果未給出 String 引數,則返回整個記錄的長度($0 記錄變數)。 |
substr( String, M, [ N ] ) | 返回具有 N 引數指定的字元數量子串。子串從 String 引數指定的字串取得,其字元以 M 引數指定的位置開始。M 引數指定為將 String 引數中的第一個字元作為編號 1。如果未指定 N 引數,則子串的長度將是 M 引數指定的位置到 String 引數的末尾 的長度。 |
match( String, Ere ) | 在 String 引數指定的字串(Ere 引數指定的擴充套件正則表示式出現在其中)中返回位置(字元形式),從 1 開始編號,或如果 Ere 引數不出現,則返回 0(零)。RSTART 特殊變數設定為返回值。RLENGTH 特殊變數設定為匹配的字串的長度,或如果未找到任何匹配,則設定為 -1(負一)。 |
split( String, A, [Ere] ) | 將 String 引數指定的引數分割為陣列元素 A[1], A[2], …, A[n],並返回 n 變數的值。此分隔可以通過 Ere 引數指定的擴充套件正則表示式進行,或用當前欄位分隔符(FS 特殊變數)來進行(如果沒有給出 Ere 引數)。除非上下文指明特定的元素還應具有一個數字值,否則 A 陣列中的元素用字串值來建立。 |
tolower( String ) | 返回 String 引數指定的字串,字串中每個大寫字元將更改為小寫。大寫和小寫的對映由當前語言環境的 LC_CTYPE 範疇定義。 |
toupper( String ) | 返回 String 引數指定的字串,字串中每個小寫字元將更改為大寫。大寫和小寫的對映由當前語言環境的 LC_CTYPE 範疇定義。 |
sprintf(Format, Expr, Expr, … ) | 根據 Format 引數指定的 printf 子例程格式字串來格式化 Expr 引數指定的表示式並返回最後生成的字串。 |