linux命令筆記__linux

來源:互聯網
上載者:User

awk 分析檔案


1,預設每行按空格或TAB分割,輸出文本中的1、4項    awk '{print $1,$4}' log.txt
2,指定分割字元‘逗號’,輸出文本中的1、4項  awk -F, '{print $1,$4}'   log.txt
3,設定變數 awk -va=1 '{print $1,$1+a}' log.txt;   awk -va=1 -vb=s '{print $1,$1+a,$1b}' log.txt
4,運算,
運算子 描述
= += -= *= /= %= ^= **= 賦值
?: C條件運算式
|| 邏輯或
&& 邏輯與
~ ~! 匹配Regex和不匹配Regex
< <= > >= != == 關係運算子     過濾第一列大於2的行 awk '$1>2' log.txt ; 過濾第一列大於2且第二列等於'Are'的行 awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt
空格 串連
+ - 加,減
* / & 乘,除與求餘
+ - ! 一元加,減和邏輯非
^ *** 求冪
++ -- 增加或減少,作為首碼或尾碼
$ 欄位引用
in 數群組成員
5,內建變數
變數 描述
\$n 目前記錄的第n個欄位,欄位間由FS分隔
\$0 完整的輸入記錄
ARGC 命令列參數的數目
ARGIND 命令列中當前檔案的位置(從0開始算)
ARGV 包含命令列參數的數組
CONVFMT 數字轉換格式(預設值為%.6g)ENVIRON環境變數關聯陣列
ERRNO 最後一個系統錯誤的描述
FIELDWIDTHS 欄位寬度列表(用空格鍵分隔)
FILENAME 當前檔案名稱
FNR 同NR,但相對於當前檔案
FS 欄位分隔符號(預設是任何空格)
IGNORECASE 如果為真,則進行忽略大小寫匹配
NF 目前記錄中的欄位數         
awk '{print NF,$1,$2,$3}' log.txt
NR 目前記錄數
OFMT 數位輸出格式(預設值是%.6g)
OFS 輸出欄位分隔符號(預設值是一個空格)
ORS 輸出記錄分隔字元(預設值是一個分行符號)
RLENGTH 由match函數所匹配的字串的長度
RS 記錄分隔字元(預設是一個分行符號)
RSTART 由match函數所匹配的字串的第一個位置
SUBSEP 數組下標分隔字元(預設值是/034)
6,使用Regex   
輸出包含"re" 的行 awk '/re/ ' log.txt  ~ 表示模式開始。// 中是模式
輸出第二列包含 "th",並列印第二列與第四列 awk '$2 ~ /th/ {print $2,$4}' log.txt 
忽略大小寫 awk 'BEGIN{IGNORECASE=1} /this/' log.txt
 
 
sed 's/hi/HI/'替換hi為HI
sort file.txt | uniq -c統計各行在檔案中出現的次數

-n是按照數字大小排序,-r是以相反順序,-k是指定需要愛排序的欄位,-t指定欄位分隔字元為冒號
 

zgrep "run time:" test.log.gz
|awk '{print $(NF-3),$(NF-1)}'
|sed 's/QT-[0-9]\{10,20\}//'
|sed 's/pool-[0-9]\{1,3\}-thread-[0-9]\{1,3\}//'
|sort
|uniq -c
|sed 's/time://'
|sort -k 3n
|sed 's/:method://'
|awk '{{if($NF<=5) {a[$2" 5"] += $1;} else if($NF<=10) {a[$2 " 10"] += $1;} 
     else if($NF<=20) {a[$2" 20"] += $1;} else if($NF<=30) {a[$2" 30"] += $1;}
else if($NF<=40) {a[$2" 40"] += $1;} else if($NF<=50) {a[$2" 50"] += $1;}
else if($NF<=60) {a[$2" 60"] += $1;} else {a[$2" 61+"] += $1}} cs[$2] += $1;}
END{ for( i in a) 
{print i, a[i],a[i]/cs[substr(i,0,index(i," ")-1)] }}'
|sort -k 1,1r -n -k 2
|awk '{print $1"\t"$2"\t"$3"\t"$4}' >~/all-htime2.txt

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.