麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 服務(wù)器 > 管理維護(hù) > 正文

Awk學(xué)習(xí)筆記

2024-09-10 14:18:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

整理:Jims of 肥肥世家

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


Table of Contents

1. awk簡(jiǎn)介
2. awk命令格式和選項(xiàng)
2.1. awk的語(yǔ)法有兩種形式
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. 條件語(yǔ)句
14.6. 循環(huán)
14.7. 數(shù)組
14.8. awk的內(nèi)建函數(shù)
15. How-to

1. awk簡(jiǎn)介

awk是一種編程語(yǔ)言,用于在linux/unix下對(duì)文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來(lái)自標(biāo)準(zhǔn)輸入、一個(gè)或多個(gè)文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動(dòng)態(tài)正則表達(dá)式等先進(jìn)功能,是linux/unix下的一個(gè)強(qiáng)大編程工具。它在命令行中使用,但更多是作為腳本來(lái)使用。awk的處理文本和數(shù)據(jù)的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒(méi)有指定處理動(dòng)作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕),如果沒(méi)有指定模式,則所有被操作所指定的行都被處理。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的語(yǔ)法有兩種形式

  • 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

打印簡(jiǎn)短的版權(quán)信息。

-W help or --help, -W usage or --usage

打印全部awk選項(xiàng)和每個(gè)選項(xiàng)的簡(jiǎn)短說(shuō)明。

-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ú)效。

-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。

兩者是可選的,如果沒(méi)有模式,則action應(yīng)用到全部記錄,如果沒(méi)有action,則輸出匹配全部記錄。默認(rèn)情況下,每一個(gè)輸入行都是一條記錄,但用戶可通過(guò)RS變量指定不同的分隔符進(jìn)行分隔。

3.1. 模式

模式可以是以下任意一個(gè):

  • /正則表達(dá)式/:使用通配符的擴(kuò)展集。

  • 關(guān)系表達(dá)式:可以用下面運(yùn)算符表中的關(guān)系運(yùn)算符進(jìn)行操作,可以是字符串或數(shù)字的比較,如$2>%1選擇第二個(gè)字段比第一個(gè)字段長(zhǎng)的行。

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

  • 模式,模式:指定一個(gè)行的范圍。該語(yǔ)法不能包括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ù)所匹配的字符串的長(zhǎng)度。
RS記錄分隔符(默認(rèn)是一個(gè)換行符)。
RSTART由match函數(shù)所匹配的字符串的第一個(gè)位置。
SUBSEP數(shù)組下標(biāo)分隔符(默認(rèn)值是 主站蜘蛛池模板: va视频在线观看 | 久久久av影视 | 精品国产91一区二区三区 | 深夜福利视频绿巨人视频在线观看 | 日本一区免费看 | 成人免费网站在线观看视频 | 欧美不卡 | 美国av免费看 | 91系列在线观看 | 亚洲免费毛片基地 | xxxx hd video 69 | 毛片大全在线观看 | 欧美三级欧美成人高清www | 一级空姐毛片 | 激情亚洲一区二区 | 精品麻豆cm视频在线看 | 久久精品欧美视频 | 国产精品性夜天天视频 | 亚洲一区二区网址 | 永久免费毛片 | 国产国语毛片 | 天使萌一区二区三区免费观看 | 中文日韩欧美 | 欧洲色阁中文字幕 | 黑色丝袜美美女被躁视频 | 热久久成人 | 免费一级毛片在线播放视频 | 国内精品久久久久久久影视红豆 | av在线等| 久久久久久久久国产精品 | 草草视频在线 | 日韩视频在线不卡 | 欧洲黄色一级视频 | 国产精品久久久久久影视 | 最新黄色毛片 | 欧美日韩视频第一页 | 伊人亚洲精品 | 毛片成人网 | 亚洲精品a级 | 91一区二区三区久久久久国产乱 | 色吧久久|