AWK 用法總結

2021-09-14 00:59:50 字數 1989 閱讀 5138

語法: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 ...