第一次發(fā)布時(shí)間:2004年8月6日

--------------------------------------------------------------------------------

Table of Contents

1. aw " /> 久久久国产一区二区三区四区小说,久久高清亚洲,www日本xxx

中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

awk簡介與學(xué)習(xí)筆記收集第1/3頁

Copyright © 2004 本文遵從GPL協(xié)議,歡迎轉(zhuǎn)載、修改、散布。

第一次發(fā)布時(shí)間:2004年8月6日


--------------------------------------------------------------------------------

Table of Contents

1. awk簡介
2. awk命令格式和選項(xiàng)
2.1. awk的語法有兩種形式
2.2. 命令選項(xiàng)
3. 模式和操作
3.1. 模式
3.2. 操作
4. awk的環(huán)境變量
5. awk運(yùn)算符
6. 記錄和域
6.1. 記錄
6.2. 域
6.3. 域分隔符
7. gawk專用正則表達(dá)式元字符
8. POSIX字符集
9. 匹配操作符(~)
10. 比較表達(dá)式
11. 范圍模板
12. 一個(gè)驗(yàn)證passwd文件有效性的例子
13. 幾個(gè)實(shí)例
14. awk編程
14.1. 變量
14.2. BEGIN模塊
14.3. END模塊
14.4. 重定向和管道
14.5. 條件語句
14.6. 循環(huán)
14.7. 數(shù)組
14.8. awk的內(nèi)建函數(shù)
15. How-to
1. awk簡介
awk是一種編程語言,用于在linux/unix下對(duì)文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動(dòng)態(tài)正則表達(dá)式等先進(jìn)功能,是linux/unix下的一個(gè)強(qiáng)大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk的處理文本和數(shù)據(jù)的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒有指定處理動(dòng)作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕),如果沒有指定模式,則所有被操作所指定的行都被處理。awk分別代表其作者姓氏的第一個(gè)字母。因?yàn)樗淖髡呤侨齻€(gè)人,分別是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell實(shí)驗(yàn)室和GNU的一些擴(kuò)展。下面介紹的awk是以GUN的gawk為例的,在linux系統(tǒng)中已把a(bǔ)wk鏈接到gawk,所以下面全部以awk進(jìn)行介紹。

2. awk命令格式和選項(xiàng)
2.1. awk的語法有兩種形式
awk [options] 'script' var=value file(s)

awk [options] -f scriptfile var=value file(s)

2.2. 命令選項(xiàng)
-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
對(duì)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平臺(tái)移植的結(jié)構(gòu)的警告。

-W lint-old or --lint-old
打印關(guān)于不能向傳統(tǒng)unix平臺(tái)移植的結(jié)構(gòu)的警告。

-W posix
打開兼容模式。但有以下限制,不識(shí)別:/x、函數(shù)關(guān)鍵字、func、換碼序列以及當(dāng)fs是一個(gè)空格時(shí),將新行作為一個(gè)域分隔符;操作符**和**=不能代替^和^=;fflush無效。

-W re-interval or --re-inerval
允許間隔正則表達(dá)式的使用,參考(grep中的Posix字符類),如括號(hào)表達(dá)式[[:alpha:]]。

-W source program-text or --source program-text
使用program-text作為源代碼,可與-f命令混用。

-W version or --version
打印bug報(bào)告信息的版本。

3. 模式和操作
awk腳本是由模式和操作組成的:
pattern {action} 如$ awk '/root/' test,或$ awk '$3 < 100' test。

兩者是可選的,如果沒有模式,則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è)字段長的行。

模式匹配表達(dá)式:用運(yùn)算符~(匹配)和~!(不匹配)。

模式,模式:指定一個(gè)行的范圍。該語法不能包括BEGIN和END模式。

BEGIN:讓用戶指定在第一條輸入記錄被處理之前所發(fā)生的動(dòng)作,通常可在這里設(shè)置全局變量。

END:讓用戶在最后一條輸入記錄被讀取之后發(fā)生的動(dòng)作。

3.2. 操作
操作由一人或多個(gè)命令、函數(shù)、表達(dá)式組成,之間由換行符或分號(hào)隔開,并位于大括號(hào)內(nèi)。主要有四部份:

變量或數(shù)組賦值

輸出命令

內(nèi)置函數(shù)

控制流命令

4. awk的環(huán)境變量
Table 1. awk的環(huán)境變量

變量 描述 
$n 當(dāng)前記錄的第n個(gè)字段,字段間由FS分隔。 
$0 完整的輸入記錄。 
ARGC 命令行參數(shù)的數(shù)目。 
ARGIND 命令行中當(dāng)前文件的位置(從0開始算)。 
ARGV 包含命令行參數(shù)的數(shù)組。 
CONVFMT 數(shù)字轉(zhuǎn)換格式(默認(rèn)值為%.6g) 
ENVIRON 環(huán)境變量關(guān)聯(lián)數(shù)組。 
ERRNO 最后一個(gè)系統(tǒng)錯(cuò)誤的描述。 
FIELDWIDTHS 字段寬度列表(用空格鍵分隔)。 
FILENAME 當(dāng)前文件名。 
FNR 同NR,但相對(duì)于當(dāng)前文件。 
FS 字段分隔符(默認(rèn)是任何空格)。 
IGNORECASE 如果為真,則進(jìn)行忽略大小寫的匹配。 
NF 當(dāng)前記錄中的字段數(shù)。 
NR 當(dāng)前記錄數(shù)。 
OFMT 數(shù)字的輸出格式(默認(rèn)值是%.6g)。 
OFS 輸出字段分隔符(默認(rèn)值是一個(gè)空格)。 
ORS 輸出記錄分隔符(默認(rèn)值是一個(gè)換行符)。 
RLENGTH 由match函數(shù)所匹配的字符串的長度。 
RS 記錄分隔符(默認(rèn)是一個(gè)換行符)。 
RSTART 由match函數(shù)所匹配的字符串的第一個(gè)位置。 
SUBSEP 數(shù)組下標(biāo)分隔符(默認(rèn)值是/034)。 

php技術(shù)awk簡介與學(xué)習(xí)筆記收集第1/3頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美 日韩 亚洲91麻豆精品 | 久久出精品 | 成人在线免费 | 可以在线看的黄色网址 | 亚洲精品视频在线看 | 亚洲日韩中文字幕 | 一级电影免费看 | 4h影视| 成人av鲁丝片一区二区小说 | 久久999 | 99久久精品免费看国产小宝寻花 | 91婷婷韩国欧美一区二区 | 国产粉嫩尤物极品99综合精品 | 色婷婷av777 av免费网站在线 | 欧美精品久久 | 成人午夜电影在线观看 | 欧美午夜影院 | 一级黄色片免费在线观看 | 激情91| 国产一区二区三区在线视频 | 亚洲xx在线 | 99精品久久久 | 狠狠亚洲 | 中文字幕日韩欧美一区二区三区 | 精品国产乱码久久久久久丨区2区 | 成人亚洲精品久久久久软件 | 国产精品久久一区二区三区 | 亚洲一区二区精品视频 | 亚洲午夜精品一区二区三区 | 国产精品美女久久久久久久网站 | 亚洲国产精品美女 | 日韩电影在线一区 | 国产在线97 | 欧美一区二区在线观看 | 亚洲欧美日韩在线 | 久久久久99 | 国产999精品久久久 精品三级在线观看 | 国产98色在线 | 日韩 | 性一交一乱一透一a级 | 日韩第1页| 极品在线|