LinuxShell自動(dòng)化運(yùn)維教學(xué)設(shè)計(jì)-awk文本處理工具教學(xué)設(shè)計(jì)_第1頁
LinuxShell自動(dòng)化運(yùn)維教學(xué)設(shè)計(jì)-awk文本處理工具教學(xué)設(shè)計(jì)_第2頁
LinuxShell自動(dòng)化運(yùn)維教學(xué)設(shè)計(jì)-awk文本處理工具教學(xué)設(shè)計(jì)_第3頁
LinuxShell自動(dòng)化運(yùn)維教學(xué)設(shè)計(jì)-awk文本處理工具教學(xué)設(shè)計(jì)_第4頁
LinuxShell自動(dòng)化運(yùn)維教學(xué)設(shè)計(jì)-awk文本處理工具教學(xué)設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

LinuxShell自動(dòng)化運(yùn)維初九年級數(shù)學(xué)教案教學(xué)設(shè)計(jì)課程名稱:LinuxShell自動(dòng)化運(yùn)維__________授課年級:___________________________授課學(xué)期:___________________________教師姓名:___________________________二零xx年零三月零一日課程名稱第八章awk文本處理工具計(jì)劃學(xué)時(shí)四學(xué)時(shí)內(nèi)容分析本章主要介紹awk簡介,awk工作流程,awk工作原理,awk語法格式,awk內(nèi)置變量,awk模式,awk流程控制,awk地函數(shù)教學(xué)目地與教學(xué)要求要求學(xué)生熟悉awk及其工作原理,熟悉awk語法格式,熟悉awk內(nèi)部變量,熟悉awk模式講解,熟悉awk流程控制,熟悉awk腳本編程實(shí)戰(zhàn)教學(xué)重點(diǎn)awk工作流程,awk工作原理,awk語法格式,awk內(nèi)置變量,awk模式,awk流程控制,awk地函數(shù)教學(xué)難點(diǎn)awk工作流程,awk工作原理,awk內(nèi)置變量,awk模式,awk流程控制,awk地函數(shù)教學(xué)方式課堂講解及ppt演示教學(xué)過程第一課時(shí)(awk簡介,awk工作流程,awk工作原理,awk內(nèi)置變量)回顧內(nèi)容,引出本課時(shí)主題回顧內(nèi)容,引出本課時(shí)主題。上面兩節(jié)學(xué)了流編輯器sed地有關(guān)內(nèi)容,本節(jié)開始awk文本處理工具地有關(guān)內(nèi)容講解。awk用于Linux/UNIX下處理文本與數(shù)據(jù)。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入,一個(gè)或多個(gè)文件,或其它命令地輸出。它支持用戶自定義函數(shù)與動(dòng)態(tài)正則表達(dá)式等,是Linux/UNIX下一個(gè)強(qiáng)大地文本分析,編程工具,相對于grep地查找,sed地編輯,awk尤為擅長數(shù)據(jù)分析及生成報(bào)告。awk一般在命令行使用,但更多是作為腳本來使用。awk有很多內(nèi)建地功能,如數(shù)組,函數(shù)等。本節(jié)著重講解awk簡介,awk工作流程awk工作原理,awk內(nèi)置變量,從而引出本節(jié)地內(nèi)容。明確學(xué)目地能夠理解awk簡介能夠熟悉awk工作流程能夠理解awk工作原理能夠熟悉awk基本語法格式能夠理解awk語法選項(xiàng)實(shí)例能夠熟悉awk內(nèi)置變量知識(shí)講解awk簡介awk被稱為文本處理三劍客之一,三個(gè)字母分別代表其創(chuàng)建者姓氏地第一個(gè)字母。因?yàn)樗貏?chuàng)建者是三個(gè),分別是AlfredAho,PeterWeinberger,BrianKernighan。awk擁有自己地語言——awk程序設(shè)計(jì)語言,三位創(chuàng)建者已將它正式定義為"樣式掃描與處理語言"。awk是一種報(bào)表生成器,對文件內(nèi)容行各種"排版"操作。它允許您創(chuàng)建簡短地程序,這些程序地功能包括讀入輸入文件,數(shù)據(jù)排序,處理數(shù)據(jù),對輸入執(zhí)行計(jì)算以及生成報(bào)表等。通過manawk可以獲取有關(guān)功能說明。awk是一種過程式編程語言或腳本語言解釋器,支持條件判斷,數(shù)組,循環(huán)等功能。awk工作流程awk地處理文本與數(shù)據(jù)地流程方式如下:它逐行掃描文件,從第一行到最后一行,尋找匹配地特定模式地行,并在這些行上行妳想要地操作。如果沒有指定處理動(dòng)作,則把匹配地行顯示到標(biāo)準(zhǔn)輸出(屏幕);如果沒有指定模式,則所有被操作所指定地行都被處理。awk有兩個(gè)特殊地模式:BEGIN與END,它們分別放置在沒有讀取任何數(shù)據(jù)之前及在所有地?cái)?shù)據(jù)讀取完成以后執(zhí)行。awk工作地整體流程如圖所示。從圖可以看出,在讀取文件內(nèi)容前,BEGIN后面地指令將被執(zhí)行;然后讀取文件內(nèi)容并判斷是否與特定地模式匹配,如果匹配,則執(zhí)行正常模式后面地指令;最后執(zhí)行END模式命令,并輸出文檔處理后地結(jié)果。awk工作原理awk格式為:awk'BEGIN{mands}pattern{mands}END{mands}'BEGIN語句塊在awk開始從輸入流讀取之前被執(zhí)行,這是一個(gè)可選地語句塊,如變量初始化,打印輸出表格地表頭等情況。END語句塊在awk在處理完所有地文本之后(如打印所有行后)被執(zhí)行。對所有行地?cái)?shù)據(jù)行分析,之后打印出分析結(jié)果這類操作,都可以在END語句塊完成。它也是一個(gè)可選語句塊。pattern語句塊地通用命令是最重要地部分,它也是可選地。如果沒有提供pattern語句塊,則默認(rèn)執(zhí)行{print},即打印讀取地每一行,awk讀取地每一行都會(huì)執(zhí)行該語句塊。其步驟如下:第一步:執(zhí)行BEGIN{mands}語句塊地語句;第二步:從文件或標(biāo)準(zhǔn)輸入(stdin)讀取一行,然后執(zhí)行pattern{mands}語句塊,它逐行掃描文件,從第一行至最后一行;第三步:當(dāng)讀至輸入流末尾時(shí),執(zhí)行END{mands}語句塊。awk基本語法格式awk地基本語法格式如下:awk'pattern'filename或:awk'{action}'filename或:awk'pattern{action}'filenameawk命令選項(xiàng)如表下所示:命令選項(xiàng)描述-F指定作為輸入行地分隔符,默認(rèn)分隔符為空格或tab鍵。-v定義變量var=value。''引用代碼塊。-f-fscriptfileor-filescriptfile,從腳本文件讀取awk命令。BEGIN初始化代碼塊。在對每一行行處理之前,初始化代碼,主要是引用全局變量,設(shè)置FS分隔符。//匹配代碼塊。可以是字符串或正則表達(dá)式。{}命令代碼塊。包含一條或多條命令,多條命令使用分號分隔。END結(jié)尾代碼塊,在對每一行行處理之后再執(zhí)行地代碼塊,主要是行最終計(jì)算或輸出結(jié)尾摘要信息。awk語法選項(xiàng)實(shí)例awk語法選項(xiàng)在工作場景使用頗多。使用方法也有很多,下面通過幾個(gè)簡單地案例來展示一下awk地常用方法。具體參見例八-一~八-八。當(dāng)在指定/etc/passwd作為輸出文件時(shí),awk就會(huì)依次讀/etc/passwd地每一行執(zhí)行print命令。awk用法如圖所示awk讀入有\(zhòng)n換行符分割地一條記錄,然后將記錄按指定地分隔符劃分域,$零則表示所有域,$一表示第一個(gè)域,$n表示第n域。默認(rèn)分隔符是"空格鍵"或"tab"鍵。因此,例八-四$一表示登錄用戶,$三表示登錄用戶ID,以此類推。[root@tianyun~]#awk-F:'{print$一,$三}'/etc/passwd其步驟解釋為:(一)awk使用一行作為輸入,并將這一行賦給變量$零,每一行也可稱為一個(gè)記錄,以換行符結(jié)束。(二)然后,行被":"(默認(rèn)為空格或制表符)分解成字段(或域),每個(gè)字段放在已編號地變量,從$一開始,最多可達(dá)一零零個(gè)字段。(三)其,awk使用空格來分隔字段,變量FS來確定字段分隔符。初始時(shí),FS默認(rèn)為空格。(四)awk打印字段時(shí),將使用print打印,并以空格隔開,注意$一與$三之間有一個(gè)逗號,稱為輸出字段分隔符OFS,OFS默認(rèn)為空格。awk輸出之后,將從文件獲取另一行,并將其放在$零,覆蓋原來地內(nèi)容;再將新地字符串分隔成字段并行處理,這一過程將持續(xù)到所有行處理完畢。通常情況下,對于每個(gè)代碼輸入而言,awk都會(huì)執(zhí)行一次。然而,在某些編寫代碼地情況下,可能需要在awk開始處理輸入文件地文本之前執(zhí)行初始化代碼。在這種情況下,awk允許用戶定義一個(gè)BEGIN模塊。因?yàn)閍wk在開始處理輸入文件之前會(huì)執(zhí)行BEGIN模塊,因此,它是初始化FS(字段分隔符)變量,初始化在程序以后會(huì)引用地全局變量。awk還提供了另一個(gè)特殊模塊,叫作END模塊。awk在處理輸入文件地所有行之后執(zhí)行這個(gè)模塊。通常,END模塊用于執(zhí)行最終計(jì)算或打印結(jié)尾地摘要信息。awk內(nèi)置變量awk優(yōu)于grep與sed地主要原因是支持對記錄與字段地處理。通常情況下,awk將文本文件地一行當(dāng)作一個(gè)記錄,而將一行某些記錄當(dāng)作一個(gè)字段。為了操作這些不同地字段,用$一,$二,$三...這樣地方式按照一定地順序表示行(記錄)地不同字段。特殊地,awk用$零表示整個(gè)行(記錄)。系統(tǒng)默認(rèn)是用空格作為不同地字段之間地分隔符,awk在命令行使用-F地形式來改變這個(gè)分隔符。事實(shí)上,awk是使用一個(gè)內(nèi)置地變量RS來記錄這個(gè)分隔符地。awk還有很多這樣地內(nèi)置變量,如記錄分隔符變量RS,當(dāng)前工作地記錄數(shù)NR等。awk提供了有很多內(nèi)置變量,了解這些內(nèi)置變量是很重要地。awk內(nèi)置變量如表所示。這些內(nèi)置地變量在使用awk工具時(shí)可以被修改或者引用,比如說,可以使用NR這個(gè)內(nèi)置變量改變模式匹配指定工作范圍,也可以通過修改記錄地分隔符RS讓一個(gè)特殊字符作為記錄地分隔符,而不是換行符。例如,顯示/etc/passwd文本文件第七行到第十五行以字符":"分隔地第一字段,第三字段與第七字段,代碼表示如下。[root@tianyun~]#awk-F:'NR>=七,NR<=一五{print$一$三$七}'/etc/passwd變量描述FILENAMEawk瀏覽地文件名。FNR與NR類似,不過多文件記錄不遞增,每個(gè)文件都從一開始。FS設(shè)置輸入字段分隔符,同-F選項(xiàng)。NF瀏覽記錄地字段個(gè)數(shù)。例如:awk'{printNF}'file表示顯示每行有多少字段$NF最后一個(gè)字段地值。例如:awk'{print$NF}'file表示將每行第NF個(gè)字段地值打印出來NR已讀地記錄數(shù),理解為行號,多文件行號遞增。例如:awk'NR==五{print}file'表示顯示第五行OFS輸出數(shù)據(jù)時(shí),每個(gè)字段間以O(shè)FS制定地字符作為分隔符。例如:awk'{print$三,$五,$四}'OFS="\n"fileORS輸出數(shù)據(jù)時(shí),每行記錄間以O(shè)FS制定地字符作為分隔符。例如:awk'{print$三,$五,$四}'ORS="\n"file\$n當(dāng)前記錄地第n個(gè)字段,字段間由FS分隔。\$零完整地輸入記錄。ARGC命令行參數(shù)地?cái)?shù)目。ARGIND命令行當(dāng)前文件地位置(從零開始算)。ARGV包含命令行參數(shù)地?cái)?shù)組。CONVFMT數(shù)字轉(zhuǎn)換格式(默認(rèn)值為%.六g)ENVIRON環(huán)境變量關(guān)聯(lián)數(shù)組。ERRNO最后一個(gè)系統(tǒng)錯(cuò)誤地描述。FIELDWIDTHS字段寬度列表(用空格鍵分隔)。IGNORECASE如果為真,則行忽略大小寫地匹配。OFMT數(shù)字地輸出格式(默認(rèn)值是%.六g)。RLENGTH由match函數(shù)所匹配地字符串地長度。RS記錄分隔符(默認(rèn)是一個(gè)換行符)。RSTART由match函數(shù)所匹配地字符串地第一個(gè)位置。SUBSEP數(shù)組下標(biāo)分隔符(默認(rèn)值是/零三四)。FIELDWIDTHS以空格分隔地字段寬度,如果指定此變量,awk將會(huì)用指定地寬度替換變量FS指定地分隔符,具體參見例八-九。FS作為指定分隔符,同-F選項(xiàng)。FS作為輸入分隔符,OFS作為輸出分隔符。$零指地是整行記錄。NR指當(dāng)前文件地總行號遞增。FNR指當(dāng)前文件地行數(shù)不遞增。NF指瀏覽記錄地字段個(gè)數(shù),以冒號作為分隔符,記錄字段地個(gè)數(shù)。$NF指最后一個(gè)字段地值。RS記錄分隔符(默認(rèn)是一個(gè)換行符),以空格作為分隔符。ORS輸出數(shù)據(jù)時(shí),默認(rèn)輸出一條記錄地分隔符。以空格作為分隔符,將文件每一行合并為一行。第二課時(shí)(sed支持正則表達(dá)式,sed案例實(shí)戰(zhàn))內(nèi)容回顧回顧上節(jié)內(nèi)容,引出本課時(shí)主題。上節(jié)已經(jīng)介紹了awk簡介,awk工作流程,awk工作原理,awk語法格式,awk內(nèi)置變量,下面將介紹,awk模式,awk流程控制,awk地函數(shù),從而引出本節(jié)內(nèi)容。明確學(xué)目地能夠理解awk模式能夠熟悉if條件語句能夠熟悉while循環(huán)能夠熟悉for循環(huán)能夠理解break命令,continue命令,exit命令能夠熟悉數(shù)組能夠理解awk內(nèi)建函數(shù)能夠熟悉awk自定義函數(shù)知識(shí)講解awk模式awk允許使用多種運(yùn)算,如+,-,*,/,%等,同時(shí),awk也有++,--,+=,-=,=+,=-類似地運(yùn)算功能,這些運(yùn)算功能使編寫awk程序更加便捷。另外,awk還提供了部分內(nèi)置地運(yùn)算函數(shù)(如log,spr,sin,cos等)以及一些用于對字符串行運(yùn)算操作地函數(shù)(如length,substr等)。這些函數(shù)地引用增強(qiáng)了awk地運(yùn)算功能。awk支持多種關(guān)系判斷,如常用地==(等于),!=(不等于),>(大于),>=(大于等于),<=(小于等于)等;同時(shí),awk用作樣式匹配時(shí),還提供了~(匹配于)與!~(不匹配于)判斷;awk還允許使用!(非),&&(與),||(或)與括號()等邏輯運(yùn)算符行多重判斷,這增強(qiáng)了awk地功能。表為常見地運(yùn)算符與描述。運(yùn)算符描述=等于,精確比較。例如:awk'$三=="四八"{print$零}'file只打印第三個(gè)字段等于"四八"地記錄!=不等于,精確比較。例如:awk'$一!="abc"file'表示提取第一個(gè)字段不是abc地行~匹配,與==相比不是精確比較。例如:awk'{if($四~/abc/)print$零}'file表示如果第四個(gè)字段包含abc,就打印整行!~不匹配,不精確比較。例如:awk'$零!~/abc/'file表示打印整條不包含abc地記錄&&與。例如:awk'{if($一=="a"&&$二=="b")print$零}'file表示第一,第二個(gè)字段值是a與b,打印整行||或。例如:awk'{if($一=="a"||$一=="b")print$零}'temp表示如果第一,第二個(gè)字段值是a或b,打印整行>大于。例如:awk'$一>五零零{print$二}'file表示如果字段一地值大于五零零,則打印字段二>=大于等于。例如:awk'$一>=四零零{print$二}'file表示如果字段一地值大于等于四零零,則打印字段二<小于。例如:awk'$一<二零零{print$二}'file表示如果字段一地值小于二零零,則打印字段二<=小于等于。例如:awk'$一<=一零零{print$二}'file表示如果字段一地值小于等于一零零,則打印字段二+加。例如:awk'{print$三+一零}'file表示字段三數(shù)值加一零-減。例如:awk'{print$三-一零}'file表示字段三數(shù)值減一零*乘。例如:awk'{print$三*一零}'file表示字段三數(shù)值乘一零/除。例如:awk'{print$三/一零}'file表示字段三數(shù)值除一零下表為awk正則匹配元字符與描述。元字符解釋^行首定位符。例如:/^root/表示匹配所有以root開頭地行$行尾定位符。例如:/root$/表示匹配所有以root結(jié)尾地行.匹配任意單個(gè)字符。例如:/r..t表示字段三數(shù)值減一零*匹配零個(gè)或多個(gè)前導(dǎo)字符(包括回車)。例如:/a*ool/表示匹配零個(gè)或多個(gè)a之后緊跟著ool地行,比如ool.aaaaool等+匹配一個(gè)或多個(gè)前導(dǎo)字符。例如:/a+b/表示匹配一個(gè)或多個(gè)a加b地行,比如ab,aab等?匹配零個(gè)或一個(gè)前導(dǎo)字符。例如:/a?b/表示匹配b或ab地行[]匹配指定字符組內(nèi)地任意一個(gè)字符。例如:/^[abc]表示以字母a或b或c開頭地行[^]匹配不在指定字符組內(nèi)任意一個(gè)字符。例如:/^[^abc]表示匹配不以字母a或b或c開頭地行()子表達(dá)式組合。例如:/(root)+/表示一個(gè)或多個(gè)rool組合,當(dāng)有一些字符需要組合時(shí),使用括號括起來|或者地意思。例如:/(root)|B/表示匹配root或B地行\(zhòng)轉(zhuǎn)義字符。例如:/a\/\//表示匹配a//~,!~匹配,不匹配地條件語句。例如:$一~/root/表示匹配第一個(gè)字段包含字符root地所有記錄x{m}x{m,}x{m,n}x重復(fù)m次,x重復(fù)至少m次,x重復(fù)至少m次但不超過n次,需要指定參數(shù)-posix或者—re-interval沒有該參數(shù)不能使用該模式。例如:/(root){三}/,/(root){三}/,/(root){五,六}/。需要注意一點(diǎn)地是,root加括號與不加括號地區(qū)別,x可以表示字符串也可以是一個(gè)字符,所以/root\{五\}/表示匹配roo再加上五個(gè)t,及roottttt,/\(root\)\{二,\}/則表示匹配rootrootrootroot等。if條件語句awk提供了完整地流程控制語句,下面詳細(xì)說明。if…else語句其語法格式為。if(條件表達(dá)式)語句一else語句二或:if(條件表達(dá)式)語句一;else語句二格式地"語句一"可以是多個(gè)語句,如果為了方便awk判斷,可以將多個(gè)語句用{}括起來。awk分支結(jié)構(gòu)允許嵌套,其格式為。if(條件表達(dá)式一){if(條件表達(dá)式二)語句一else語句二}語句三else{if(條件表達(dá)式三)語句四else語句五}語句六這種嵌套方式在實(shí)際操作過程比較復(fù)雜地分支結(jié)構(gòu),讀者了解即可,while循環(huán)while循環(huán)語法結(jié)構(gòu)為:while條件表達(dá)式{語句}awk除while循環(huán)結(jié)構(gòu)外,還有"do...while"循環(huán)結(jié)構(gòu)。它在代碼塊結(jié)尾處對條件求值,而不像標(biāo)準(zhǔn)while循環(huán)那樣在開始處求值,其語法結(jié)構(gòu)為: do 語句 while(條件表達(dá)式)與一般地while循環(huán)不同,由于在代碼塊之后對條件求值,"do...while"循環(huán)結(jié)構(gòu)永遠(yuǎn)都至少執(zhí)行一次。換句話說,當(dāng)?shù)谝淮斡龅狡胀╳hile循環(huán)時(shí),如果條件為假,將永遠(yuǎn)不執(zhí)行該循環(huán)。其語法結(jié)構(gòu)示例如下。 [root@tianyun~]#vimb.txt 一一一二二二 三三三四四四五五五 六六六七七七八八八九九九for循環(huán)for循環(huán)數(shù)組遍歷地方式格式為:for(變量in數(shù)組){語句}固定循環(huán)地方式格式為:for(變量;條件;表達(dá)式){語句}for語句首先執(zhí)行初始化語句,然后再檢查條件。如果條件為真,則執(zhí)行語句,然后執(zhí)行遞增或者遞減操作。只要條件為真,循環(huán)就會(huì)一直執(zhí)行。每次循環(huán)結(jié)束都會(huì)行條件檢查,若條件為假則結(jié)束循環(huán)。break命令,continue命令,exit命令在Linuxawk地while語句,do...while與f語句可以使用break命令,continue命令控制流程走向。break斷當(dāng)前正在執(zhí)行地循環(huán)并跳到循環(huán)外執(zhí)行下一條語句,continue從當(dāng)前位置跳到循環(huán)開始處執(zhí)行,exit用于退出語句循環(huán)。continue語句用于在循環(huán)體內(nèi)部結(jié)束本次循環(huán),從而直接入下一次循環(huán)迭代。exit用于結(jié)束腳本程序地執(zhí)行。數(shù)組awk處理文本數(shù)組是必不可少地,由于數(shù)組索引(下標(biāo))可以是數(shù)字與字符串,索引(下標(biāo))一般稱作key,并且與對應(yīng)數(shù)組元素地值關(guān)聯(lián)。因此,awk地?cái)?shù)組稱為關(guān)聯(lián)數(shù)組(AssociativeArrays)。另外,數(shù)組元素地key與值都放在awk內(nèi)部程序地某一張表,通常使用一定散列算法來存放,所以數(shù)組元素并不是按照一定順序來放地。同理,也不是按照一定地順序打印出來地,但可以使用管道來對所需地?cái)?shù)據(jù)再次操作來達(dá)到效果。awk地?cái)?shù)組不必提前聲明,也不必聲明大小,因?yàn)樗谶\(yùn)行時(shí)可以自動(dòng)地增加或減少。數(shù)組元素用零或空字符串來初始化,這根據(jù)上下文而定。一般而言,awk地?cái)?shù)組用來從記錄收集信息,可以用于計(jì)算總與,統(tǒng)計(jì)單詞以及跟蹤模板被匹配地次數(shù)等。下圖為awk數(shù)組結(jié)構(gòu)。如上圖可以發(fā)現(xiàn),awk數(shù)組就與酒店一樣,數(shù)組地名稱就像是酒店名稱,數(shù)組元素名稱就像酒店房間號碼,每個(gè)數(shù)組元素里面地內(nèi)容就像是酒店房間里面地,下圖是數(shù)組圖。數(shù)組使用地語法格式為。定義數(shù)組:數(shù)組名[下標(biāo)]=元素值array_name[index]=value其索引下標(biāo)可以是數(shù)字,也可以是字符。使用數(shù)組:數(shù)組名[下標(biāo)]輸出數(shù)組元素地值:print數(shù)組名[下標(biāo)]遍歷數(shù)組循環(huán)結(jié)構(gòu):for(變量名in數(shù)組名){print數(shù)組名[變量名]}awk地函數(shù)定義,調(diào)用用戶本身地函數(shù)是每個(gè)高級語言都具有地功能,awk也不例外。原始地awk并不提供函數(shù)功能,只有在nawk或較新地awk版本才可以增加函數(shù)。函數(shù)地使用包含兩部分:函數(shù)地定義與函數(shù)調(diào)用。其,函數(shù)定義又包括函數(shù)名,函數(shù)參數(shù),函數(shù)體。awk分為內(nèi)建函數(shù)與自定義函數(shù),下面分別行講解。awk內(nèi)建函數(shù)下表一為字符串函數(shù)及其作用。下表二為算術(shù)函數(shù)及其作用。內(nèi)建函數(shù)作用gsub(x,y,z)在字串z使用字串y替換與正則表達(dá)式x相匹配地所有字串,z默認(rèn)為$零。相當(dāng)于sed地s///gsub(x,y,z)在字串z使用字串y替換與正則表達(dá)式x相匹配地第一個(gè)字串,z默認(rèn)為$零。相當(dāng)于sed地s///length(string)返回string參數(shù)指定地字符串地長度(字符形式)。如果未給出string參數(shù),則返回整個(gè)記錄地長度($零記錄變量)。getline從輸入讀取下一行內(nèi)容。index(string一,string二)在由string一參數(shù)指定地字符串(其有出現(xiàn)string二指定地參數(shù)),返回位置,從一開始編號。如果string二參數(shù)不在string一參數(shù)出現(xiàn),則返回零。substr(string,M,[N])返回具有N參數(shù)指定地字符數(shù)量字串。字串從string參數(shù)指定地字符串取得,其字符以M參數(shù)指定地位置開始。M參數(shù)指定為將string參數(shù)地第一個(gè)字符作為編號一。如果未指定N參數(shù),則字串地長度將是M參數(shù)指定地位置到string參數(shù)地末尾地長度。match(string,Ere)在string參數(shù)指定地字符串(Ere參數(shù)指定地?cái)U(kuò)展正則表達(dá)式出現(xiàn)在其)返回位置(字符形式),從一開始編號,或如果Ere參數(shù)不出現(xiàn),則返回零(零)RSTART特殊變量設(shè)置為返回值,RLENGTH特殊變量設(shè)置為匹配地字符串地長度,或如果未找到任何匹配,則設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論