亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > 管理維護 > 正文

Awk學習筆記

2024-09-10 14:18:53
字體:
來源:轉載
供稿:網友

整理:Jims of 肥肥世家

第一次發布時間:2004年8月6日


Table of Contents

1. awk簡介
2. awk命令格式和選項
2.1. awk的語法有兩種形式
2.2. 命令選項
3. 模式和操作
3.1. 模式
3.2. 操作
4. awk的環境變量
5. awk運算符
6. 記錄和域
6.1. 記錄
6.2. 域
6.3. 域分隔符
7. gawk專用正則表達式元字符
8. POSIX字符集
9. 匹配操作符(~)
10. 比較表達式
11. 范圍模板
12. 一個驗證passwd文件有效性的例子
13. 幾個實例
14. awk編程
14.1. 變量
14.2. BEGIN模塊
14.3. END模塊
14.4. 重定向和管道
14.5. 條件語句
14.6. 循環
14.7. 數組
14.8. awk的內建函數
15. How-to

1. awk簡介

awk是一種編程語言,用于在linux/unix下對文本和數據進行處理。數據可以來自標準輸入、一個或多個文件,或其它命令的輸出。它支持用戶自定義函數和動態正則表達式等先進功能,是linux/unix下的一個強大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk的處理文本和數據的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進行你想要的操作。如果沒有指定處理動作,則把匹配的行顯示到標準輸出(屏幕),如果沒有指定模式,則所有被操作所指定的行都被處理。awk分別代表其作者姓氏的第一個字母。因為它的作者是三個人,分別是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell實驗室和GNU的一些擴展。下面介紹的awk是以GUN的gawk為例的,在linux系統中已把awk鏈接到gawk,所以下面全部以awk進行介紹。

2. awk命令格式和選項

2.1. awk的語法有兩種形式

  • awk [options] 'script' var=value file(s)

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

2.2. 命令選項

-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報告信息的版本。

3. 模式和操作

awk腳本是由模式和操作組成的:

pattern {action} 如$ awk '/root/' test,或$ awk '$3 < 100' test。

兩者是可選的,如果沒有模式,則action應用到全部記錄,如果沒有action,則輸出匹配全部記錄。默認情況下,每一個輸入行都是一條記錄,但用戶可通過RS變量指定不同的分隔符進行分隔。

3.1. 模式

模式可以是以下任意一個:

  • /正則表達式/:使用通配符的擴展集。

  • 關系表達式:可以用下面運算符表中的關系運算符進行操作,可以是字符串或數字的比較,如$2>%1選擇第二個字段比第一個字段長的行。

  • 模式匹配表達式:用運算符~(匹配)和~!(不匹配)。

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

  • BEGIN:讓用戶指定在第一條輸入記錄被處理之前所發生的動作,通??稍谶@里設置全局變量。

  • END:讓用戶在最后一條輸入記錄被讀取之后發生的動作。

3.2. 操作

操作由一人或多個命令、函數、表達式組成,之間由換行符或分號隔開,并位于大括號內。主要有四部份:

  • 變量或數組賦值

  • 輸出命令

  • 內置函數

  • 控制流命令

4. awk的環境變量

Table 1. awk的環境變量

變量描述
$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數組下標分隔符(默認值是亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久久| 欧美激情国产日韩精品一区18| 久久高清视频免费| 欧美与黑人午夜性猛交久久久| 91地址最新发布| 亚洲欧美另类在线观看| 激情久久av一区av二区av三区| 精品五月天久久| 91精品视频免费| 日韩亚洲综合在线| 欧美性xxxx极品hd欧美风情| 日本aⅴ大伊香蕉精品视频| 96国产粉嫩美女| 狠狠色狠狠色综合日日小说| 国产精品网站大全| 人人爽久久涩噜噜噜网站| 亚洲美女av在线播放| 欧美精品在线免费| 欧美富婆性猛交| 欧美最猛黑人xxxx黑人猛叫黄| 久久韩剧网电视剧| 国产成人精品av| 国产精品久久久精品| 亚洲精品aⅴ中文字幕乱码| 亚洲一区二区三区久久| 韩国19禁主播vip福利视频| 国产成人一区二区| 日韩欧美国产一区二区| 91在线直播亚洲| 亚洲国产成人一区| 91高清免费在线观看| 日韩男女性生活视频| 国产精品久久久久福利| 国内外成人免费激情在线视频| 欧美夫妻性生活xx| 亚洲国产成人久久| 在线观看国产欧美| 亚洲护士老师的毛茸茸最新章节| 中文字幕在线看视频国产欧美在线看完整| 国产精品久久久久久婷婷天堂| 欧美性色视频在线| 91久久久亚洲精品| 亚洲精品免费一区二区三区| 久久精品国产一区二区三区| 中文一区二区视频| 日韩av免费在线看| 国产精品成人一区| 久久这里有精品| 日本高清视频精品| 欧美激情高清视频| 欧美性猛交xxxx免费看漫画| 久久av资源网站| 欧美极品美女电影一区| 在线电影欧美日韩一区二区私密| 亚洲一区二区中文字幕| 国产精品1234| 亚洲综合在线做性| 亚洲www在线| 92看片淫黄大片欧美看国产片| 中文字幕国产精品| www国产亚洲精品久久网站| 欧美性理论片在线观看片免费| 91精品国产高清久久久久久| 一区二区三区视频免费在线观看| 国产精品人成电影在线观看| 欧美黑人视频一区| 免费不卡欧美自拍视频| 精品成人在线视频| 国产成人av网| 欧美乱人伦中文字幕在线| 国产亚洲欧美一区| 97视频在线观看免费| 91九色视频导航| 国产精品中文字幕在线观看| 亚洲精品综合久久中文字幕| 精品夜色国产国偷在线| 日韩av电影手机在线| 亚洲欧美资源在线| 精品国产一区二区在线| 成人h视频在线观看播放| 中文字幕日韩在线视频| 日韩在线观看成人| 色琪琪综合男人的天堂aⅴ视频| 成人乱色短篇合集| 日韩免费在线播放| 丝袜美腿亚洲一区二区| 亚洲欧洲一区二区三区在线观看| 欧美黑人国产人伦爽爽爽| 亚洲欧洲在线观看| 日韩一区二区久久久| 91精品国产99久久久久久| 成人午夜在线影院| 黄色一区二区在线| 亚洲天堂日韩电影| 国产精品毛片a∨一区二区三区|国| 国产美女久久精品香蕉69| 亚洲白拍色综合图区| 国产精品高清在线| 色综合色综合网色综合| 亚洲综合视频1区| 精品自拍视频在线观看| 亚洲国内高清视频| 最近免费中文字幕视频2019| 91po在线观看91精品国产性色| 这里只有精品在线观看| 亚洲成人中文字幕| 久久免费视频在线观看| xvideos亚洲人网站| 国产99视频精品免视看7| 国产精品久久久久久亚洲调教| 欧美专区在线播放| 日韩av网站大全| 青青在线视频一区二区三区| 精品呦交小u女在线| 成人黄色免费片| 欧美一级在线播放| 国产精品r级在线| 爽爽爽爽爽爽爽成人免费观看| 亚洲精品电影网在线观看| 美女性感视频久久久| 日韩大片免费观看视频播放| 亚洲**2019国产| 国产精自产拍久久久久久蜜| 欧美日韩高清区| 日本最新高清不卡中文字幕| 亚洲天堂色网站| 久久av在线播放| 国产一区欧美二区三区| 欧美最猛性xxxxx(亚洲精品)| 精品少妇v888av| 欧美日韩国产色| 九九九久久久久久| 久久久久久高潮国产精品视| 国产精品美女999| 日韩视频在线观看免费| 国产精品久在线观看| 欧美成aaa人片在线观看蜜臀| 久久久久久香蕉网| 高清欧美性猛交| 欧美亚洲国产日韩2020| 欧美最近摘花xxxx摘花| 91精品在线观| y97精品国产97久久久久久| 伊人久久久久久久久久| www日韩中文字幕在线看| 国内外成人免费激情在线视频| 亚洲成人xxx| 欧美大码xxxx| 亚洲电影成人av99爱色| 亚洲欧美在线一区二区| 欧美精品激情视频| 国产啪精品视频网站| 国产精品女人久久久久久| 亚洲视频在线免费观看| 91精品视频免费观看| 91精品国产色综合久久不卡98| 久久婷婷国产麻豆91天堂| 91精品国产91久久| 欧美日韩免费看| 最近2019年中文视频免费在线观看| 久久久免费在线观看| 色偷偷av一区二区三区乱| 亲爱的老师9免费观看全集电视剧| 日韩成人在线播放|