




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 過(guò)濾程序及編程 5.1 grep系列過(guò)濾程序5.2 其他過(guò)濾程序(sort,uniq,tr)5.3 字符流編輯程序sed5.4 模式掃描與處理語(yǔ)言awk5.1 grep系列過(guò)濾程序 主要有以下幾種:grepegrepfgrep5.1.1 grep格式: grep 選項(xiàng) 模式 文件. 說(shuō)明: 在指定的文件中搜索模式,并顯示所有包含模式的行。grep簡(jiǎn)單使用$ who|grep mary 查看mary是否上機(jī)$ ls | grep -v temp 顯示不包括temp的文件名$grep mary $HOME/shprg/phone-book 查找mary的電話(huà)號(hào)碼grep簡(jiǎn)單使用$ grep
2、 From $MAIL 打印信箱中的信頭$ grep From $MAIL | grep mary 打印來(lái)自mary的信頭$ grep From $MAIL | grep v mary 打印不是來(lái)自mary的信頭grep模式 實(shí)際上,grep可以搜索更為復(fù)雜的模式,模式可以是一個(gè)正則表達(dá)式。在使用正規(guī)表達(dá)式時(shí),最好將其引在單引號(hào)() 中。若指定文件為缺省,則使用標(biāo)準(zhǔn)輸入。格式: grep正則表達(dá)式 文件 grep正則表達(dá)式符號(hào)表達(dá)式含義c任意字符c轉(zhuǎn)義字符行首$行尾.任意單個(gè)字符.字符中的任一字符,如abc.不在.中的任意單個(gè)字符grep正則表達(dá)式符號(hào)表達(dá)式含義r*r出現(xiàn)0或多次r+r出現(xiàn)1次
3、或多次(僅用在egrep中)r?r出現(xiàn)0或1次(僅用在egrep中)r1r2r2緊隨r1r1|r2r1或r2(僅用在egrep中)(r)帶括號(hào)的正則表達(dá)式r(僅用在grep中);可嵌套(r)正則表達(dá)式r(僅于egrep中);可嵌套grep舉例例1:$grep From $MAIL 顯示From起始的行 grep舉例例2:$ ls -l | grep d列出所有目錄$ ls -l | grep .rw 列出其它用戶(hù)可讀寫(xiě)的文件名 grep舉例例3:$ grep :*: /etc/passwd查找沒(méi)有口令的用戶(hù) /etc/passwd文件內(nèi)容:$ grep you /etc/passwdyou:
4、604: 604: 31060107: /usr/home/you: /bin/sh$5.1.2 egrep格式:$ egrep -f 模式文件 文件名egrep舉例 例1:從一個(gè)字典文件中查找包含所有五個(gè)元音字母的單詞.$ cat alphvowels 模式文件aeiou*aaeiou*eaeiou *iaeiou*oaeiou*uaeiou*$egrep舉例例1:從一個(gè)字典文件中查找包含所有五個(gè)元音字母的單詞.$ egrep -f alphvowels /usr/dict/web2|3abstemiousabstemiouslyabstentiousacheilousacheirousac
5、leistousaffectiousannelidousarseniousarteriousbacteriouscaesiousfacetiousfacetiouslyfracedinousmajestious$egrep舉例例2:查找包含六個(gè)或六個(gè)以上字母,且所有字母都是按字母表順序排列的單詞.$ cat monotonic 模式文件a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?u?z?$ egrep舉例例2:查找包含六個(gè)或六個(gè)以上字母,且所有字母都是按字母表順序排列的單詞.$ egrep -f monotonic /usr/dict/web
6、2|grep .|5abdestacknowadipsyagnosyalmostbefistbehintbeknowbijouxbiopsychintzdehorsdehortdeinosdimpsyegilopsghosty$ 5.2其它過(guò)濾程序(sort,uniq,tr)sort 排序程序 uniq 刪除重復(fù)行 tr 對(duì)輸入字符進(jìn)行翻譯5.2.1 sort排序程序 舉例:$ ls | sort -f按字母表的順序?qū)⑽募判? ls s | sort n最小文件優(yōu)先的排序$ ls s | sort nr最大文件優(yōu)先的排序sort舉例 sort通常對(duì)整行排序,也可對(duì)特定字段排序.符號(hào)+m表示
7、跳過(guò)m個(gè)字段;+0是行的開(kāi)始.$ ls -l | sort +4nr按文件字計(jì)數(shù)(第5個(gè)字段)最大優(yōu)先排序$ ls -l junk-rw-r- - - - - l you you 22 Sep 31 14:30 junk$sort舉例 $ who | sort +3n按登錄時(shí)間(第4個(gè)字段)最早優(yōu)先排序$ whoyoutty02Sep-28 08:02wangtty03Sep-28 10:12$5.2.2 uniq刪除重復(fù)的行 舉例:$ uniq -u file顯示不重復(fù)的行$ uniq -c file刪除重復(fù)的行,計(jì)算每行出現(xiàn)的次數(shù)$ uniq -d file顯示重復(fù)的行 5.2.3 tr
8、對(duì)輸入字符進(jìn)行翻譯 舉例: $ cat file | tr a-z A-Z 小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)$ cat file | tr A-Z a-z 大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)一個(gè)綜合的例子功能: 顯示輸入中最常用的10個(gè)單詞。 $ cat wsc(后面加文件名)cat $*(代指N個(gè)文件)|tr -sc A-Za-z 012| 非字母字符轉(zhuǎn)換為換行sort|所有單詞按ASCII表排序uniq c|刪除重復(fù)的行,計(jì)算每行出現(xiàn)的次數(shù)sort n|按出現(xiàn)的次數(shù)由小到大排序tail |輸出最后10行5按5列輸出$5.3字符流編輯程序sed sed功能sed命令格式sed舉例sed其他應(yīng)用5.3.1 sed功能 se
9、d是一個(gè)非交互性文本流編輯器。sed可以編輯文件或標(biāo)準(zhǔn)輸入的文本。標(biāo)準(zhǔn)輸入可能是來(lái)自鍵盤(pán)、文件重定向、字符串或變量,或者是一個(gè)管道的文本。5.3.2 sed命令格式:$ sed 編輯命令 文件名 sed命令(1) 命令含義a將行添加到輸出直至不以為終結(jié)的行b標(biāo)號(hào)轉(zhuǎn)至命令:標(biāo)號(hào)c對(duì)隨后的文本,如同a命令那樣逐行修改d刪除行,讀下一個(gè)輸入行i在下一個(gè)輸出前插入下面的文本l按行列表,使所有非打印字符可見(jiàn)p打印行s/串1/串2/f用串2替換串1,若f=g,置換所有;f=p,打印;f=w 文件,寫(xiě)文件r文件讀文件,拷貝內(nèi)容到輸出q退出sed命令(2) 命令含義t 標(biāo)號(hào)測(cè)試:若對(duì)當(dāng)前行作了替換,轉(zhuǎn)至標(biāo)號(hào)w
10、 文件將行寫(xiě)到文件y/串1/串2/用串2中對(duì)應(yīng)的字符替換串1中的每個(gè)字符(不支持范圍值)=打印當(dāng)前輸入行號(hào)!命令僅當(dāng)行未選取時(shí),執(zhí)行sed命令:標(biāo)號(hào)為b和t命令設(shè)置標(biāo)號(hào)將之間的命令視作一組5.3.3 sed舉例例1:用sed替換字符串$sed s/UNIX/UNIX(TM)/g 文件名outputsed舉例例2:用sed刪除du輸出中的文件大小.du命令:顯示文件的大小和文件名: $ du a ch4.* 18 ch4.1 13ch4.2 14 ch4.3 17 ch4.4 2 ch4.9 $sed舉例例2:用sed刪除du輸出中的文件大小.$ du -a ch4.*|sed s/.*t/ch
11、4.1ch4.2ch4.3ch4.4ch4.9$sed舉例例3:從who的輸出中選擇用戶(hù)名和注冊(cè)時(shí)間.$ wholr tty1 Sep 29 07:14ron tty3 Sep 29 10:31you tty4 Sep 29 08:36td tty5 Sep 29 08:47$sed舉例例3:從who的輸出中選擇用戶(hù)名和注冊(cè)時(shí)間.$ who |sed s/ .* / / 小數(shù)點(diǎn)前和星號(hào)后,/之間都有一個(gè)空格.lr 07:14ron 10:31you 08:36td 08:47$sed舉例例3:從who的輸出中選擇用戶(hù)名和注冊(cè)時(shí)間.$ who |sed s/ .* /t/lr 07:14ron
12、10:31you 08:36td 08:47$sed舉例例4:getname 獲取你的注冊(cè)名$ cat getnamewho am i | sed s/ .*/ 小數(shù)點(diǎn)前有一個(gè)空格.$ getnameyou$sed舉例例5:ind將輸入的每一行縮進(jìn)一個(gè)Tab位置$ sed s/t/ $* ind第一版此版本甚至在每個(gè)空行中也輸入一個(gè)Tab,這是不必要的。sed舉例例5:ind將輸入的每一行縮進(jìn)一個(gè)Tab位置$ sed /./s/t/ $* ind第二版模式/./與任意至少有一個(gè)字符(不包括換行符)的行相匹配。s命令只作用于這樣的行。sed舉例例5:ind將輸入的每一行縮進(jìn)一個(gè)Tab位置$ se
13、d /$/!s/t/ $* ind第三版模式/$/與空行相匹配, /$/!的意義是不要將命令作用在空行. 5.3.4 sed其他應(yīng)用在文件每行的末尾增加一回車(chē),從而使其輸入擴(kuò)展為雙倍行距.$ sed s/$/n/ 文件名sed其他應(yīng)用用換行符替換文件中的每個(gè)空格或Tab串,從而將文件分為一行一個(gè)單詞。$ sed s/ t t*/ n/g 文件名 sed其他應(yīng)用可使用行號(hào)來(lái)選取一定范圍內(nèi)的行,使得任一命令都可作用于其上。$ sed -n 20, 30p 文件名僅打印20至30行$ sed 1, 10d 文件名 刪除1至10行$ sed 1, /$/d文件名刪除至第一個(gè)空行$ sed $d文件名刪
14、除最后一行$ sed n /$/, /end/p 文件名打印每個(gè)從一空行至一個(gè)開(kāi)始于end字符串的行sed其他應(yīng)用sed提供了輸出多個(gè)文件的能力:$ sed -n /模式/w file1 /模式/!w file2 文件名.$sed其他應(yīng)用 newer列出所有比指定文件更新的文件。 $ cat newer # newer f: list files newer than f ls -t | sed /$1$/q $ older列出所有比指定的文件更老的文件。$ cat older$ older f:list files older than fls -tr | sed /$1$/q$5.4 模式
15、掃描與處理語(yǔ)言awk 5.4.1 概述5.4.2 字段5.4.3 打印5.4.4 模式 5.4.5 BEGIN與END語(yǔ)句5.4.6 變量與算術(shù)運(yùn)算5.4.7 控制流 5.4.8 數(shù)組 5.4.9 關(guān)聯(lián)數(shù)組 5.4.1 概述(1)awk介紹(2)awk功能(3)awk命令(4)awk內(nèi)部變量(5)awk操作符 (6)awk內(nèi)置函數(shù)(1)awk介紹awk是由Aho, Weinberger 和 Kernigham 設(shè)計(jì)與實(shí)現(xiàn)的一個(gè)編程工具,其名字awk 是由三個(gè)設(shè)計(jì)者的名字第一個(gè)字母縮寫(xiě)而成的。awk 是一種用于處理文本的編程語(yǔ)言,也稱(chēng)為“模式掃描和處理語(yǔ)言”。 (2)awk功能awk具備了一個(gè)編
16、程語(yǔ)言的各種特性。awk具有讀取輸入、模式匹配、數(shù)據(jù)排序、數(shù)據(jù)處理、數(shù)據(jù)運(yùn)算以及生成報(bào)表等功能。awk還可以使用控制流、數(shù)組、進(jìn)程控制,甚至可以使用內(nèi)部變量和內(nèi)置函數(shù)。(3)awk命令格式: awk 程序 文件名 awk -f 程序文件文件名其中,程序是由“模式-動(dòng)作”語(yǔ)句組成.模式1 動(dòng)作1模式2 動(dòng)作2模式n 動(dòng)作n (4)awk內(nèi)部變量 變 量含 義FILENAMEFSNFNROFMTOFSORSRS當(dāng)前輸入的文件名字段分隔符(缺省為空格和Tab)輸入記錄中的字段個(gè)數(shù)輸入的記錄數(shù)數(shù)字的輸出格式(缺省為g)輸出字段分隔符(缺省為空格)輸出記錄分隔符(缺省為換行)輸入記錄分隔符(缺省為換行)
17、(5)awk操作符 操作符含 義=, +=, -=, *=, /=, %=|&!, = , , 0) If ($1 = = lastword ) printf “double %s, file %s, line %dn”, $1, FILENAME, NR for ( i = 2 ; i 0) lastword = $NF $*$ 5.4.8 數(shù)組 建立數(shù)組:awk可以將輸入行收集到數(shù)組中,然后進(jìn)行處理。split(s,arr,sep)函數(shù):能夠?qū)⒆址畇分成若干字段,并保存在數(shù)組arr從arr1至arrn的元素中,sep為分隔符。n = split ( s, arr, sep )舉例例1,將
18、每個(gè)輸入行收集到以行數(shù)為索引的數(shù)組line中,然后以逆序打印輸出。$ cat backwardsawk lineNR = $0 END for (i = NR; i 0; i - -) print linei $*$舉例 例2,輸出/etc/passwd 中的root用戶(hù)名。$ sed lq /etc/passwd | awk split ($0, a, “:”); print a1root$舉例 例3,分隔并輸出某個(gè)字段。$ echo 9/29/2010 | awk split ($0, date, “/”); print date32010$5.4.9 關(guān)聯(lián)數(shù)組 在數(shù)據(jù)處理中,經(jīng)常需要進(jìn)行關(guān)聯(lián)計(jì)算,如名字與數(shù)值的關(guān)聯(lián)計(jì)算。在awk中,可以用任意數(shù)值作為關(guān)聯(lián)數(shù)組下標(biāo)。 舉
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西景區(qū)云推廣活動(dòng)方案
- 沙拉沙龍活動(dòng)方案
- 2025年吉林省延邊州協(xié)作體中考?xì)v史模擬試卷(含答案)
- 服務(wù)成果展示活動(dòng)方案
- 期末詞語(yǔ)展示活動(dòng)方案
- 楊鈺瑩近期活動(dòng)方案
- 護(hù)理健康宣講微課
- 注冊(cè)稅務(wù)師看課件百度云
- 河流域水環(huán)境綜合治理項(xiàng)目投資計(jì)劃書(shū)
- 秸稈生態(tài)補(bǔ)償制度方案
- 2024年中汽中心招聘真題
- 2024年貴州省黔西縣教育局公開(kāi)招聘試題含答案分析
- 集裝箱投資項(xiàng)目可行性研究報(bào)告
- 2025-2030中國(guó)農(nóng)業(yè)電商行業(yè)經(jīng)營(yíng)規(guī)模及投資發(fā)展戰(zhàn)略研究報(bào)告
- 拆分合同:合伙企業(yè)解散及債務(wù)分擔(dān)協(xié)議
- 2025河北邯鄲市肥鄉(xiāng)區(qū)選聘農(nóng)村黨務(wù)(村務(wù))工作者100人筆試參考題庫(kù)完整參考答案詳解
- 酒店安保部管理制度
- T/SHPTA 069-2023汽車(chē)內(nèi)飾用反應(yīng)型聚氨酯熱熔膠
- 2025年農(nóng)業(yè)果園土地租賃承包合同
- 藥店考核試題及答案
- 智慧礦山無(wú)人機(jī)自動(dòng)巡檢解決方案
評(píng)論
0/150
提交評(píng)論