Windows上GAWK的使用 二

2021-06-19 14:14:12 字數 1965 閱讀 1117

gawk內建環境變數:

變數 描述

$n 當前記錄的第n個字段,欄位間由fs分隔。

$0 完整的輸入記錄。

argc 命令列引數的數目。

argind 命令列中當前檔案的位置(從0開始算)。

argv 包含命令列引數的陣列。

convfmt 數字轉換格式(預設值為%.6g)

environ 環境變數關聯陣列。

errno 最後乙個系統錯誤的描述。

fieldwidths 字段寬度列表(用空格鍵分隔)。

filename 當前檔名。

fnr 同nr,但相對於當前檔案。

fs 字段分隔符(預設是任何空格)。

ignorecase 如果為真,則進行忽略大小寫的匹配。

nf 當前記錄中的字段數。

nr 當前記錄數。

ofmt 數字的輸出格式(預設值是%.6g)。

ofs 輸出字段分隔符(預設值是乙個空格)。

ors 輸出記錄分隔符(預設值是乙個換行符)。

rlength 由match函式所匹配的字串的長度。

rs 記錄分隔符(預設是乙個換行符)。

rstart 由match函式所匹配的字串的第乙個位置。

subsep 陣列下標分隔符(預設值是\034)。

gawk運算子

table 2. 運算子

運算子 描述

= += -= *= /= %= ^= **= 賦值

?: c條件表示式

|| 邏輯或

&& 邏輯與

~ ~! 匹配正規表示式和不匹配正規表示式

< <= > >= != == 關係運算子

空格 連線

+ - 加,減

* / & 乘,除與求餘

+ - ! 一元加,減和邏輯非

^ *** 求冪

++ -- 增加或減少,作為字首或字尾

$ 字段引用

in 陣列成員

6. 記錄和域

6.1. 記錄

gawk把每乙個以換行符結束的行稱為乙個記錄。

記錄分隔符:預設的輸入和輸出的分隔符都是回車,儲存在內建變數ors和rs中。

$0變數:它指的是整條記錄。如 gawk..exe  「」  test.txt將輸出test檔案中的所有記錄。

變數nr:乙個計數器,每處理完一條記錄,nr的值就增加1。如 gawk.exe  「」 test.txt將輸出test檔案中所有記錄,並在記錄前顯示記錄號。

6.2. 域

記錄中每個單詞稱做「域」,預設情況下以空格或tab分隔。gawk可跟蹤域的個數,並在內建變數nf中儲存該值。如 gawk 「」  test.txt將列印test檔案中第一和第三個以空格分開的列(域)。

6.3. 域分隔符

內建變數fs儲存輸入域分隔符的值,預設是空格或tab。我們可以通過-f命令列選項修改fs的值。如 gawk.exe –f」:」  「」  test.txt將列印以冒號為分隔符的第一,第五列的內容。

可以同時使用多個域分隔符,這時應該把分隔符寫成放到方括號中,如gawk.exe –f」[:\t]」 「'」 test.exe,表示以空格、冒號和tab作為分隔符。

輸出域的分隔符預設是乙個空格,儲存在ofs中。如gawk.exe –f」:」  「」  test.exe,$1和$5間的逗號就是ofs的值。

7. gawk專用正規表示式元字元

一般通用的元字符集就不講了,可參考我的sed和grep學習筆記。以下幾個是gawk專用的,不適合unix版本的gawk。

\y匹配乙個單詞開頭或者末尾的空字串。

\b匹配單詞內的空字串。

\<

匹配乙個單詞的開頭的空字串,錨定開始。

\>

匹配乙個單詞的末尾的空字串,錨定末尾。

\w匹配乙個字母數字組成的單詞。

\w匹配乙個非字母數字組成的單詞。

\『匹配字串開頭的乙個空字串。

\'匹配字串末尾的乙個空字串。

Windows上GAWK的使用 三

9.匹配操作符 用來在記錄或者域內匹配正規表示式。如gawk.exe 1 root test.txt將顯示test檔案第一列中以root開頭的行。10.比較表示式 conditional expression r1 expression r2 expression r3,例如 gawk.exe 1 ...

Windows上GAWK的使用 五

14.8.gawk的內建函式 14.8.1.字串函式 sub函式匹配記錄中最大 最靠左邊的子字串的正規表示式,並用替換字串替換這些字串。如果沒有指定目標字串就預設使用整 個記錄。替換只發生在第一次匹配的時候。格式如下 sub regular expression r,substitution str...

Windows上GAWK的使用 一

現在經常要處理到一些日誌資料,對這些資料進行分析處理,但首先要對日誌資料進行etl處理,如果簡單的資料格式處理,使用gawk是最理想不過了,下面我們就介紹如何使用gawk,對資料進行e extract 處理。二.gawk的基本語法.1.gawk格式.gawk options begin patter...