注:
1、windows上使用awk,應(yīng)該把單引號改成雙引號。
2、如果你的awk代碼可以在Linux可以跑,在Windows下卻不行,請檢查代碼中是否有百分號%,將所有%轉(zhuǎn)義為%%。
一.到網(wǎng)上下載一個(gè)gawk.exe程序(用于Windows上)。
二.gawk的基本語法.
1.gawk格式.
gawk [options] "[Begin{}][pattern]{action}[End{}]" InputFileName.
1.1. 命令選項(xiàng)[options]
-F fs or --field-separator fs
指定輸入文件折分隔符,fs是一個(gè)字符串或者是一個(gè)正則表達(dá)式,如-F:。
-v var=value or --asign var=value
賦值一個(gè)用戶定義變量。
-f scripfile or --file scriptfile
從腳本文件中讀取awk命令。
-mf nnn and -mr nnn
對nnn值設(shè)置內(nèi)在限制,-mf選項(xiàng)限制分配給nnn的最大塊數(shù)目;-mr選項(xiàng)限制記錄的最大數(shù)目。這兩個(gè)功能是Bell實(shí)驗(yàn)室版awk的擴(kuò)展功能,在標(biāo)準(zhǔn)awk中不適用。
-W compact or --compat, -W traditional or --traditional
在兼容模式下運(yùn)行awk。所以gawk的行為和標(biāo)準(zhǔn)的awk完全一樣,所有的awk擴(kuò)展都被忽略。
-W copyleft or --copyleft, -W copyright or --copyright
打印簡短的版權(quán)信息。
-W help or --help, -W usage or --usage
打印全部awk選項(xiàng)和每個(gè)選項(xiàng)的簡短說明。
-W lint or --lint
打印不能向傳統(tǒng)unix平臺移植的結(jié)構(gòu)的警告。
-W lint-old or --lint-old
打印關(guān)于不能向傳統(tǒng)unix平臺移植的結(jié)構(gòu)的警告。
-W posix
打開兼容模式。但有以下限制,不識別:/x、函數(shù)關(guān)鍵字、func、換碼序列以及當(dāng)fs是一個(gè)空格時(shí),將新行作為一個(gè)域分隔符;操作符**和**=不能代替^和^=;fflush無效。
-W re-interval or --re-inerval
允許間隔正則表達(dá)式的使用,參考(grep中的Posix字符類),如括號表達(dá)式[[:alpha:]]。
-W source program-text or --source program-text
使用program-text作為源代碼,可與-f命令混用。
-W version or --version
打印bug報(bào)告信息的版本。
3. 模式和操作[pattern] And [action]
gawk腳本是由模式和操作組成的:
pattern {action} 如gawk .exe “/root/” test.text,或gawk.exe “$3 < 100” test.text。
兩者是可選的,如果沒有模式,則action應(yīng)用到全部記錄,如果沒有action,則輸出匹配全部記錄。默認(rèn)情況下,每一個(gè)輸入行都是一條記錄,但用戶可通過RS變量指定不同的分隔符進(jìn)行分隔。
3.1. 模式
模式可以是以下任意一個(gè):
*
/正則表達(dá)式/:使用通配符的擴(kuò)展集。
*
關(guān)系表達(dá)式:可以用下面運(yùn)算符表中的關(guān)系運(yùn)算符進(jìn)行操作,可以是字符串或數(shù)字的比較,如$2>%1選擇第二個(gè)字段比第一個(gè)字段長的行。
新聞熱點(diǎn)
疑難解答
圖片精選