AWK 學習筆記

簡介:html

AWK是一種處理文本文件的語言,是一個強大的文本分析工具。git

之因此叫AWK是由於其取了三位創始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。正則表達式

使用格式:app

awk [選項參數] ‘script’ var=value file(s)

awk [選項參數] -f scriptfile var=value file(s)函數

參數說明:工具

-F fs or --field-separator fs
指定輸入文件折分隔符,fs是一個字符串或者是一個正則表達式,如-F:。
-v var=value or --asign var=value
賦值一個用戶定義變量。
-f scripfile or --file scriptfile
從腳本文件中讀取awk命令。
-mf nnn and -mr nnn
對nnn值設置內在限制,-mf選項限制分配給nnn的最大塊數目;-mr選項限制記錄的最大數目。這兩個功能是Bell實驗室版awk的擴展功能,在標準awk中不適用。
-W compact or --compat, -W traditional or --traditional
在兼容模式下運行awk。因此gawk的行爲和標準的awk徹底同樣,全部的awk擴展都被忽略。
-W copyleft or --copyleft, -W copyright or --copyright
打印簡短的版權信息。
-W help or --help, -W usage or --usage
打印所有awk選項和每一個選項的簡短說明。
-W lint or --lint
打印不能向傳統unix平臺移植的結構的警告。
-W lint-old or --lint-old
打印關於不能向傳統unix平臺移植的結構的警告。
-W posix
打開兼容模式。但有如下限制,不識別:/x、函數關鍵字、func、換碼序列以及當fs是一個空格時,將新行做爲一個域分隔符;操做符=不能代替和=;fflush無效。
-W re-interval or --re-inerval
容許間隔正則表達式的使用,參考(grep中的Posix字符類),如括號表達式:alpha:
-W source program-text or --source program-text
使用program-text做爲源代碼,可與-f命令混用。
-W version or --version
打印bug報告信息的版本。this

用法一:spa

基本用法:
awk ‘{[pattern] action}’ {filenames} # 行匹配語句 awk ‘’ 只能用單引號unix

實例一:模式取反htm

➜ base git:(master) ✗ cat log.txt
2 this is a test
3 Are you like awk
This’s a test
10 There are orange,apple,mongo

➜ base git:(master) ✗ awk ‘/mongo/’ log.txt
10 There are orange,apple,mongo
➜ base git:(master) ✗ awk ‘!/mongo/’ log.txt
2 this is a test
3 Are you like awk
This’s a test

用法二:

awk -F #-F至關於內置變量FS, 指定分割字符

實例二:

➜ base git:(master) ✗ cat log.txt
2 this, is a test
3 Are you, like awk
This’s a, test
10 There, are orange,apple,mongo
➜ base git:(master) ✗ awk -F, ‘{print $1}’ log.txt
2 this
3 Are you
This’s a
10 There

用法三:

awk -v # 設置變量

實例三:

➜ base git:(master) ✗ cat log.txt
2 this, is a test
3 Are you, like awk
This’s a, test
10 There, are orange,apple,mongo
➜ base git:(master) ✗ awk -v a=5 ‘{print 1,1,1a}’ log.txt
2 25
3 35
This’s This’s5
10 105
➜ base git:(master) ✗ awk -v a=s ‘{print 1,1,1a}’ log.txt2 2s3 3sThis’s This’ss10 10s

相關文章
相關標籤/搜索