2021-05-12 14:32:11
awk的常用標量變數和數值運算子
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
相關文章