首頁 > 軟體

awk的常用標量變數和數值運算子

2020-06-16 17:21:51

awk是Unix系統中的重要的支援正規表示式模式的處理文字處理工具,它即不像sed是基於一行行的處理文字資料,也不像grep一樣只是匹配某一個字串所在的行的資料,它處理文字資料是可以抓取到相應的欄位的,要實現如此複雜的功能awk就有大量的內建函數、命令、變數、陣列等等。awk還支援自定義變數,awk的內建變數一般用大寫,而我們自定義的變數中一般全域性變數第一個字母大寫,區域性變數全部小寫,這個是我們一般的使用習慣。當然在Unix系統中awk還有衍生出其他相應的免費版本,如果你的系統是遵從FHS標準的話,預設的有如下:

[root@localhost bin]# ls /bin/|egrep '.*awk$|^awk.*'
awk
gawk
igawk
pgawk

其他版本的awk在這裡就不做過多的贅述了,先說一下awk的常用內建標量變數:

變數說明
FILENAME 當前輸入檔案的名字
FNR 當前檔案的記錄數(record,即rows行)
FS 欄位分隔字元(預設為空格)
NF 當前記錄的欄位數(field的總和,即$0裡的所有欄位數)
NR 當前處理的欄位的記錄數(如果是處理所有資料等效於FNR)
OFS 輸出欄位分隔字元(預設為空格)
ORS 輸出記錄分隔字元(預設為“n”,即換行)
RS 輸入記錄分隔字元
SUBSEP 陣列下標分隔字元

數值運算子(優先順序從大到小):

運算子說明
++ -- 增加與減少(前置或後置)
^ ** 指數
! + - 非、加(一元條件表示式中)、減(一元條件表示式中)
* / % 乘、除、餘
+ - 加、減
< <= == => != > 比較
&& 邏輯與(and)
|| 邏輯或(or)
? : 三元條件式
= += -= *= /= %= ^= **= 賦值

當然還有正則運算子,當然在平時我們可能還會使用的到awk的內建函數來處理資料,另外awk下還有BEGING、END、PATTERN這3種語句塊,在這裡就不做過多的說明了,需要可以檢視man幫助文件,總之awk是在Unix系統中相當重要的文字處理工具,如果熟悉掌握它可以讓你在平時處理資料時事半功倍。

Linux常用命令之awk http://www.linuxidc.com/Linux/2016-09/135046.htm

Linux系統之文字格式化工具awk http://www.linuxidc.com/Linux/2016-02/128150.htm

AWK簡介及使用範例 http://www.linuxidc.com/Linux/2013-12/93519.htm

Linux awk文字分析工具 http://www.linuxidc.com/Linux/2015-12/126217.htm

Linux文字處理工具之awk  http://www.linuxidc.com/Linux/2015-01/111437.htm

如何在Linux中使用awk命令 http://www.linuxidc.com/Linux/2014-10/107542.htm

文字分析工具-awk  http://www.linuxidc.com/Linux/2014-12/110939.htm

AWK入門基礎教學  http://www.linuxidc.com/Linux/2016-12/138138.htm

使用awk格式化輸出文字 http://www.linuxidc.com/Linux/2016-04/130193.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-02/140393.htm


IT145.com E-mail:sddin#qq.com