国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

shell腳本學(xué)習(xí)指南[四](Arnold Robbins & Nelson H.F. Beebe著)

2019-10-26 18:39:24
字體:
供稿:網(wǎng)友

回憶起一件事情:之前用linux尋找中文輸入法的時(shí)候,在百度輸入了fcitx,然后結(jié)果上邊有個(gè),您要找的是不是: 諷刺騰訊 。本來一直記不住這個(gè)輸入法名字,不過以后哥就記住這個(gè)輸入法的名字是怎么拼了,感謝百度。


第九章awk的驚人表現(xiàn)


awk的調(diào)用可以定義變量、提供程序并且指定輸入文件,語法:

代碼如下:
awk [ -F fs ] [ -v var=value ... ] 'program' [ -- ] [ var=value ... ] [file(s) ]
awk [ -F fs ] [ -v var=value ... ] -f programfile [ -- ] [ var=value ... ] [ file(s) ]


短程序通常直接在命令行上提供,而比較長的程序則委托-f選項(xiàng)指定,可以重復(fù)使用此選項(xiàng)。如果命令行未指定文件名,則awk會(huì)從標(biāo)準(zhǔn)輸入讀取。 -- 是特殊選項(xiàng),指出awk本身已經(jīng)沒有更進(jìn)一步的命令行選項(xiàng)。任何接下來的選項(xiàng)都可被你的程序使用。
-F選項(xiàng)是用來重新定義默認(rèn)字段分隔字符,且一般慣例將它作為第一個(gè)命令選項(xiàng)。緊接-F選項(xiàng)后的fs參數(shù)是一個(gè)正則表達(dá)式或是被提供作為下一個(gè)參數(shù)。字段分隔字符也可以設(shè)置使用內(nèi)建變量FS所指定。如:
awk -F '/t' '{ ... }' files FS="[/f/v]" files
上邊例子-F選項(xiàng)設(shè)置的值,應(yīng)用到第一個(gè)文件組,而由FS指定的值,則應(yīng)用到第二個(gè)組。初始化的-v選項(xiàng)必須放在命令行上直接給定的任何程序之前,他們會(huì)在程序啟動(dòng)前生效。在一命令行程序之后-v選項(xiàng)會(huì)被解釋為一個(gè)文件名。在命令行上其他地方的初始化會(huì)在處理參數(shù)時(shí)完成,并且會(huì)帶上文件名,如:
awk '{...}' Pass=1 *.tex Pass=2 *.tex
處理文件的列表兩次,第一次Pass設(shè)為1,第二次為2。使用字符串值進(jìn)行初始化無須用引號(hào)框起來,除非shell要求這樣的引用以保護(hù)特殊字符或空白。

特殊文件名-(連字符)表示標(biāo)準(zhǔn)輸入。大部分現(xiàn)代的awk實(shí)現(xiàn)(不包括POSIX)都認(rèn)定特殊名稱/dev/stdin為標(biāo)準(zhǔn)輸入,即使主機(jī)操作系統(tǒng)不支持該文件名。同樣:/dev/stderr與/dev/stdout可用于awk程序內(nèi),分別表示標(biāo)準(zhǔn)錯(cuò)誤輸出與標(biāo)準(zhǔn)輸出。

一般awk命令模式或操作可省略一個(gè),如果模式省略,則每條輸入都被操作;如果操作省略,則默認(rèn)操作為輸出匹配模式的記錄。雖然模式多半是數(shù)字或字符串表達(dá)式,不過awk以保留自BEGIN與END提供兩種特殊模式。

與BEGIN關(guān)聯(lián)的操作只會(huì)執(zhí)行一次,在任何命令行文件或一般命令行賦值被處理之前,但是在任何開頭的-v選項(xiàng)指定已完成之后。它大部分是用來處理程序所需要的任何特殊初始化工作。END操作也是只執(zhí)行一次。用于所有輸出數(shù)據(jù)已被處理完之后。BEGIN和END模式可以是任意順序,可以存在awk程序內(nèi)任何位置。當(dāng)指定多個(gè)BEGIN或END模式,則他們將按照在awk程序里的順序執(zhí)行。

awk提供了標(biāo)量與數(shù)組兩種變量以保存數(shù)據(jù)、數(shù)字與字符串表達(dá)式,還提供了一些語句類型以處理數(shù)據(jù):賦值、注釋、條件、函數(shù)、輸入、循環(huán)及輸出。awk表達(dá)式許多功能與c語言相似。awk里注釋是從#開始到行尾。跨行語句需要在結(jié)尾處加上反斜杠。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 含山县| 濮阳市| 蛟河市| 卫辉市| 衡东县| 罗田县| 徐州市| 台州市| 汾西县| 全州县| 桓仁| 镇远县| 朝阳市| 东平县| 元氏县| 雷州市| 山阴县| 肥西县| 阳春市| 金昌市| 尼木县| 南开区| 太白县| 西贡区| 武川县| 怀柔区| 西林县| 衢州市| 芮城县| 汪清县| 临江市| 汝城县| 金湖县| 松潘县| 宜阳县| 扎囊县| 乌什县| 陕西省| 蓝田县| 竹山县| 大庆市|