語法:awk [options] 『script』 var=value files
常用命令選項:
awk簡介:
操作由乙個或者多個命令、函式、表示式組成、之間有換行符或者分號隔開,並且位於大括號內
awk 『begin pattern end』 file
乙個awk指令碼通常由 begin語句塊 、 pattern語句塊 、 end語句塊 三部分組成,這三部分是可選的,任意乙個部分都可以不出現在指令碼中,指令碼通常在單引號或雙引號中
例子:
awk 『begin end』 filename
awk 」begin end」 filename
awk工作原理:
awk begin pattern end』
執行 begin 中的語句塊
pattern 逐行掃瞄檔案,從第一行至最後一行,重複處理過程
當讀至輸入流末尾時,執行end{}語句塊
awk內建變數:
舉例:
awk "" filename 列印每一行的第二和第三個字段
awk "end" filename 統計檔案中的行數
var=10000
echo | awk -v varrable=$var ""
var1="aaa"
var2="bbb"
echo | awk "" vi=$var1 v2=$var2
awk算術運算子:
awk 「begin 」
注意:所有用作算術運算子額操作,運算元自動轉換為數值,所有非數值都變為0
賦值運算子:
= += -= *= /= %= ^= *=
邏輯運算子:
|| &&
正則運算子:
~ ~!
awk "begin }"
關係運算子:
< <= >= != ==
awk 「begin }」
//awk高階輸入輸出: next
awk 'nr%2==1' text.txt
next 語句一般用於多行合併
//awk getline 用法:
awk "begin" //執行linuxdate命令,並將結果管道給getline,把輸出值賦值給自定義變數,並列印
awk 「begin」 //分割
awk "begin" 等於 awk "begin)}"
//輸出到乙個檔案中:
echo | awk ''
echo | awk ''
//設定字段定界符: 預設為空格
awk -f : '' /etc/passwd
awk 'begin ' /etc/passwd
awk 中可使用 while do-while for if break continue exit等語句,與c語言保持一致,每句之間用;結尾
awk 陣列:
awk中陣列不必提前宣告,也不必宣告大小。陣列元素用0或空字串來初始化
數字做索引下標:
arra[1] = 「sun」
arra[2] = 「kai」
字串做陣列索引:
arra[「first」] = 「www」
arra[「lat」] = 「name」
讀取陣列的值
;} 輸出順序是隨機的
} len 是陣列的長度 length(array)得到陣列的長度;
awk用法總結
awk 主要用於資料提取 執行awk,需要乙個告訴awk怎麼做的awk程式。awk是由一系列指令組成,每個指令是由乙個搜尋模式和乙個執行動作組成,多個指令之間用換行符分開 pattern n pattern 執行awk有兩種方式,1,awk程式很短,可以直接寫在執行awk的命令列中 2,awk程式比...
linux學習筆記 awk用法總結
awk是一種優良的文字處理工具,linux及unix環境中現有的功能最強大的資料處理引擎之一.這篇部落格是的讀書筆記。按列輸出 首先,用 netstat netstat.txt 命令把netstat的結果重定向到netstat.txt中 結果類似這樣 現在,我要列印第一列 1 和第四列 4 注意 0...
awk用法小結
awk 用法 awk pattern 變數名 含義 argc 命令列變元個數 argv 命令列變元陣列 filename 當前輸入檔名 fnr 當前檔案中的記錄號 fs 輸入域分隔符,預設為乙個空格 rs 輸入記錄分隔符 nf 當前記錄裡域個數 nr 到目前為止記錄數 ofs 輸出域分隔符 ors ...