9月15日awk小結

awk是報告生成器

awk是原作者:aho,Weinberger,Kernighan三個人首字母的縮寫

awk是指向gawk的符號鏈接

 

awk是獨立的編程語言,

模式:類似地址定界

$0表示整個一行

$1$2$3$4,表示每個由空格分開的單位

image

-F char 是分隔符

awk [選項] ‘program’ file

awk [選項] ‘pattern{action}’ file

 

支持變量:

內置變量,自定義變量

內置變量:

      FS:輸入時字段分隔符

image

      Rs:輸入時行分隔符

image 

      OFS:輸出時字段分隔符

image

      ORS:輸出時行分隔符

image 

      NF:一個行裏的字段數

image

      NR:文件裏的行數

image

      FNR:顯示每個文件的行號

image

awk –F: ‘{print $1,$NF}’ /etc/passwdd等同於下邊的命令

awk –v FS=: ‘{print $1,$NF}’ /etc/passwd



 

自定義變量

image

printf命令:

printf format,item1,item2

format的可選項:

    %c:顯示字符的ASCII碼

    %d,%i:顯示十進制

    %e,%E:科學技術法顯示數值

    %f:顯示字符串

    %g,%G:以科學技術法格式或浮點數格式顯示數值

    %s:顯示字符串

    %u:顯示無符號整數

    %%:顯示%自身

修飾符:

    #:寬度

    -左對齊

    +顯示數值符號

    .#取精度值

image

注意 : print不會顯示出%d的含義,只會顯示字符

算術運算:+,-,*,/,+=,-=,*=,/=

如果自身是=,要寫成/=/

比較操作符:

<

<=

>

>=

==

!=

~左邊字符串能匹配右邊模式爲真

!~對上一個命令取反

三目操作符:

image

 

pattern,模式:

1、正則:/pattern/

image

2、表達式:

image

3、行範圍,地址定界startline endline等,用NR來做判斷

image

4、BEGIN/END特殊模式,表示之前(BEGIN)或之後(END)運行1次

image

5、空模式,匹配任意行,默認模式

action

     1、表達式

     2、控制語句 if-else,

if(條件){then body}else{else body}

image

do-while

image

死循環啦。

while

image

for

image

case

     3、組合語句

     4、輸入語句

     5、輸出語句print,printf

 

循環控制:break,continue,next

next,提前進入對下一行的處理!!

 

數組:

傳統數組:索引從1開始

關聯數組

for(var in array),array是索引

image

image

這個用法很常用,統計同一字段的不同名稱的數量

 

內置函數:

length(string),求string長度

split(目標字符串,分隔後存放位置,分隔符)分隔字符串

substr取子串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章