欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2008年04月24日 19:58:23   作者:  
Awk學(xué)習(xí)筆記 整理:Jims of 肥肥世家 <jims.yang@gmail.com>
Copyright © 2004 本文遵從GPL協(xié)議,歡迎轉(zhuǎn)載、修改、散布。

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


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

Table of Contents

1. awk簡介
2. awk命令格式和選項
2.1. awk的語法有兩種形式
2.2. 命令選項
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. 一個驗證passwd文件有效性的例子
13. 幾個實例
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下對文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入、一個或多個文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動態(tài)正則表達(dá)式等先進(jìn)功能,是linux/unix下的一個強(qiáng)大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk的處理文本和數(shù)據(jù)的方式是這樣的,它逐行掃描文件,從第一行到最后一行,尋找匹配的特定模式的行,并在這些行上進(jìn)行你想要的操作。如果沒有指定處理動作,則把匹配的行顯示到標(biāo)準(zhǔn)輸出(屏幕),如果沒有指定模式,則所有被操作所指定的行都被處理。awk分別代表其作者姓氏的第一個字母。因為它的作者是三個人,分別是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供了Bell實驗室和GNU的一些擴(kuò)展。下面介紹的awk是以GUN的gawk為例的,在linux系統(tǒng)中已把a(bǔ)wk鏈接到gawk,所以下面全部以awk進(jìn)行介紹。

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是一個字符串或者是一個正則表達(dá)式,如-F:。

-v var=value or --asign var=value
賦值一個用戶定義變量。

-f scripfile or --file scriptfile
從腳本文件中讀取awk命令。

-mf nnn and -mr nnn
對nnn值設(shè)置內(nèi)在限制,-mf選項限制分配給nnn的最大塊數(shù)目;-mr選項限制記錄的最大數(shù)目。這兩個功能是Bell實驗室版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選項和每個選項的簡短說明。

-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是一個空格時,將新行作為一個域分隔符;操作符**和**=不能代替^和^=;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報告信息的版本。

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

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

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

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

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

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

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

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

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

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

變量或數(shù)組賦值

輸出命令

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

控制流命令

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

變量 描述 
$n 當(dāng)前記錄的第n個字段,字段間由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 最后一個系統(tǒng)錯誤的描述。 
FIELDWIDTHS 字段寬度列表(用空格鍵分隔)。 
FILENAME 當(dāng)前文件名。 
FNR 同NR,但相對于當(dāng)前文件。 
FS 字段分隔符(默認(rèn)是任何空格)。 
IGNORECASE 如果為真,則進(jìn)行忽略大小寫的匹配。 
NF 當(dāng)前記錄中的字段數(shù)。 
NR 當(dāng)前記錄數(shù)。 
OFMT 數(shù)字的輸出格式(默認(rèn)值是%.6g)。 
OFS 輸出字段分隔符(默認(rèn)值是一個空格)。 
ORS 輸出記錄分隔符(默認(rèn)值是一個換行符)。 
RLENGTH 由match函數(shù)所匹配的字符串的長度。 
RS 記錄分隔符(默認(rèn)是一個換行符)。 
RSTART 由match函數(shù)所匹配的字符串的第一個位置。 
SUBSEP 數(shù)組下標(biāo)分隔符(默認(rèn)值是\034)。 

相關(guān)文章

  • php格式化工具Beautify PHP小小BUG

    php格式化工具Beautify PHP小小BUG

    Beautify PHP is written entirely in PHP. The program was tested with Linux and Windows, PHP 4.1.0 and PHP 4.3.1, but it should work on most systems running PHP.
    2008-04-04
  • 8個出色的WordPress SEO插件收集

    8個出色的WordPress SEO插件收集

    以下是幾個一流的SEO插件列表,它們可以幫助我們提高WordPress站點(diǎn)在搜索引擎中的排名。
    2011-02-02
  • 什么是phpDocumentor

    什么是phpDocumentor

    PHPDocumentor是一個用PHP寫的工具,對于有規(guī)范注釋的php程序,它能夠快速生成具有相互參照,索引等功能的API文檔。
    2008-09-09
  • 各種快遞查詢--Api接口

    各種快遞查詢--Api接口

    目前支持申通快遞查詢接口、圓通快遞查詢API、中通快遞、韻達(dá)快遞、匯通快遞、EMS快遞、順豐快遞、天天快遞、宅急送快遞等國內(nèi)常見快遞,同時也支持TNT快遞、FedEx快遞、DHL快遞、UPS快遞等國外常見快遞的查詢服務(wù)共計支持100余家快遞,覆蓋了市面95%以上的使用群體。
    2016-04-04
  • 建站常用13種PHP開源CMS比較

    建站常用13種PHP開源CMS比較

    dedecms很好用,建立模板也很方便,代碼也合理,相對其它CMS要好得多,最為關(guān)鍵的是開源。,現(xiàn)在網(wǎng)上最熱門,已經(jīng)有不少大站在使用這個CMS了,中國站長站就是使用的這個CMS。
    2009-08-08
  • 怎樣去閱讀一份php源代碼

    怎樣去閱讀一份php源代碼

    技術(shù)的快速進(jìn)步,最好的途徑就是閱讀源代碼了。自己也閱讀了很多開源的程序,感覺方法很重要,好的方法可以達(dá)到事半功倍的效果。一下就是我自己的一些新的,希望對大家都有用。
    2009-08-08
  • PHP 開源AJAX框架14種

    PHP 開源AJAX框架14種

    PHP 開源AJAX框架14種,需要的朋友可以參考下,學(xué)習(xí)。
    2009-08-08
  • PHP5.2下chunk_split()函數(shù)整數(shù)溢出漏洞 分析

    PHP5.2下chunk_split()函數(shù)整數(shù)溢出漏洞 分析

    PHP5.2下chunk_split()函數(shù)整數(shù)溢出漏洞 分析...
    2007-06-06
  • mysql,mysqli,PDO的各自不同介紹

    mysql,mysqli,PDO的各自不同介紹

    PDO,MYSQL,MYSQLI 性能哪個比較好,普通的mysql連接肯定是會被拋棄的 因為每次都要防止sql注入的問題 而且相對來說比較慢
    2012-09-09
  • dedecms系統(tǒng)常用術(shù)語匯總

    dedecms系統(tǒng)常用術(shù)語匯總

    dedecms系統(tǒng)常用術(shù)語匯總...
    2007-04-04

最新評論