awk程式設計基本使用示例

2021-06-09 07:40:38 字數 1499 閱讀 2897

對於每一行,如果第三列大於0,則列印第一列,第二列*第三列的值

awk `$3>0 ` file1 file2

-f指定執行程式的檔案

awk -f programfile inputfile

列印整行輸入

awk `` 或者 awk ``

nr當前行數,nf當前行的列數,下面這個 是列印當前行的列數,第一列和最後一列

awk ``

格式化輸出,跟c語言格式化類似

awk `printf("%-8s %.2f", $1,$2*$3)`

排序awk `$3>0 ` file1 file2 | sort

計算後再選擇

awk `$3 * $2>50 ` file1 file2

awk `$1=="suite" ` file1 file2

awk `!($nf>5 || $nf < 2)" ` file1 file2

begin 和 end begin在處理輸入前先執行begin語句塊

awk `begin`

統計第三列大於50的總數,在處理完輸入之後最後輸入第三列大於50的總數

awk `$3>50 end`

字串拼接

awk ` end `

內建函式length

awk ``

if-else

awk `$2>10 end`

while語句

awk `i=1 while(i<$3)`

forawk ``

arrays

逆序列印

awk ` end }`

字段分隔符

awk `beginend`

正則匹配

$2包含字串asia

awk `$2 ~ /asia/ print $3`

$2沒有包含字串asia

awk `$2 !~ /asia/ print $3`

內建變數

fnr 需要讀入的行數 filename 讀入的檔名

賦值到字段中

awk `begin $2=="aaa" $2=="ccc" `

內建數學函式

atan2(y,x) cos(x) exp(x) int(x) log(x) rand(x) sin(x) sqrt(x) srand(x)

string內建函式

gsub(r,s) gsub(r,s,t) index(s,t) length(s) match(s,r) split(s,a) split(s,a,fs) sprinf() sub(r,s) substr(s,p)

do statement while(expr)

break continue

next exit

delete函式

for(i in pop)

delete pop[i]

多維陣列

pop[i,j]

if((i,j) in arr) ...

AWK的基本使用

由於一直在做it實施工作,所以工作中接觸到unix後台的東西多些.從剛開始只會使用cd pwd等簡單的命令,到後來順手就能寫個幾十行的shell指令碼,在這個過程中經歷了很多,也學習到了很多.awk是我個人認為使用最多,最高效的命令.本篇就先回憶下awk的基礎.awk雖然功能強大,但是其語法卻一點也...

awk的基本使用

常用的分割 testphone 檔案中儲存了 18768193916,18768187118,13777495441,17764562286,15068118584,13186967520,13750893161,18758322331,18767180646,13588023315 cat tes...

awk學習示例

sed和 awk一直是文字分析的神器,最近學習了陳皓的兩篇博文,小試牛刀如下。1.背景 有些map reduce 資料產出之後,對於 value 數量不足的記錄,要求在資料端予以補全。在這裡,我們要求每條記錄中有10個 value 用逗號,進行分隔。對於補全之後的結果,是不是可以保證每條記錄中有10...