linux_awk

awk的工作模式: 將文本數(shù)據(jù)先進行一行一行做分割,再以某種定義將行數(shù)據(jù)分割為字段數(shù)據(jù),形成基本的數(shù)據(jù)單位, 然后執(zhí)行awk中的代碼;

字段: 從awk的角度看, 本文的基本組成單位為字段, 所以awk處理的數(shù)據(jù)對象就是字段;

注: 默認以空白為分割, 將一行文本分割成若干字段, 其中 $number 就表示某個字段

猜測: $0 代表的是當(dāng)前所在行的行內(nèi)容;

awk -F'正則表達式' '{print $number}' 按照某種規(guī)則分割字段

awk中內(nèi)置的變量:

NF number final 每一行的字段總數(shù),也就是最后一列所在的列數(shù);

NR number row 保存的值是文件數(shù)據(jù)的行數(shù),是總行數(shù)

FNR 保存的值是單個文本數(shù)據(jù)的行數(shù)值

自定義變量語法: -v 變量名=xxx; 簡化寫法: 變量名=xxx

猜測: awk中數(shù)組的聲明語法: 數(shù)組名[下標名稱]="存儲數(shù)據(jù)"

BEGIN 用于給變量賦初始值; END 用于輸出結(jié)果

awk中 '' 單引號引起來的部分就是awk的代碼:其組成由 判斷+{代碼塊} 為單位組成;

基本單位形式: 判斷+{代碼塊}

判斷 : 就是用于判斷此行有沒有資格執(zhí)行判斷后面的 {代碼塊} 代碼塊,用作判斷依據(jù)的可以是NR和正則表達式,或者&&兩者共同用作判斷條件;

注: /正則表達式/ 書寫正則表達式的語法;

{代碼塊} : 本身就相當(dāng)于java中某個方法體內(nèi)的代碼塊;當(dāng)然,其內(nèi)部可以寫if,for等等代碼;

print 方法自帶換行符; printf 方法不帶換行符;

awk可以重定向,將內(nèi)容輸出到某個文件下, 記得給文件名加 "" 雙引號;


練習(xí)題:

統(tǒng)計一個文件有多少個單詞?

統(tǒng)計一個文件中某個單詞出現(xiàn)的次數(shù)?

awk  '{for(i=1;i<=NF;i++){if("word"==$i)num++}} END{print num}'  filepath

分組求解和:

awk -F "\t" '

BEGIN{

print "分段 \t 天數(shù)"

g13 = 0

g34 = 0

g45 = 0

g56 = 0

g67 = 0

g78 = 0

g8up = 0

}

{

if(($5+$6+$7) < 30000){

g13 ++

} else if(($5+$6+$7) >= 30000 && ($5+$6+$7) < 40000){

g34 ++

} else if(($5+$6+$7) >= 40000 && ($5+$6+$7) < 50000){

g45 ++

} else if(($5+$6+$7) >= 50000 && ($5+$6+$7) < 60000){

g56 ++

} else if(($5+$6+$7) >= 60000 && ($5+$6+$7) < 70000){

g67 ++

} else if(($5+$6+$7) >= 70000 && ($5+$6+$7) < 80000){

g78 ++

} else{

g8up ++

}

}

END{

print "1-3",g13

print "3-4",g34

print "4-5",g45

print "5-6",g56

print "6-7",g67

print "7-8",g78

print "8up",g8up

}

filepath
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • sed工具簡介 用法:sed [-nefri] 動作參數(shù):-n:使用安靜模式(Silent)模式,一般在sed的...
    Bloo_m閱讀 1,070評論 0 1
  • 一. AWK 說明 awk的處理文本和數(shù)據(jù)的方式:它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并...
    西華子閱讀 1,026評論 0 4
  • 簡介 awk是一個強大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報告時,顯得尤...
    ad085d162310閱讀 1,167評論 0 1
  • linux awk命令詳解 來源:ggjucheng 鏈接:http://www.cnblogs.com/ggju...
    meng_philip123閱讀 941評論 0 1
  • 2017-05-11 來源: http://man.linuxde.net/awk 沈劍老師的公眾號 awk是一種...
    點點漁火閱讀 554評論 0 3

友情鏈接更多精彩內(nèi)容