2022年AWKSEDGREP學(xué)習(xí)筆記及用法心得_第1頁
2022年AWKSEDGREP學(xué)習(xí)筆記及用法心得_第2頁
2022年AWKSEDGREP學(xué)習(xí)筆記及用法心得_第3頁
2022年AWKSEDGREP學(xué)習(xí)筆記及用法心得_第4頁
2022年AWKSEDGREP學(xué)習(xí)筆記及用法心得_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、GREP,AWK,SED 學(xué)習(xí)筆記及使用心得 grep grep 是一種強(qiáng)大的文本搜尋工具,它能使用正就表達(dá)式搜尋文本,并把匹配的行打印出來; 一般格式 grep 選項(xiàng) 基本正就式 文件 選項(xiàng): -c 不輸出內(nèi)容只統(tǒng)計(jì)匹配行數(shù) -i grep -c 123 filename 相當(dāng)于 grep 123 filename | wc -l 不區(qū)分大小寫 grep -i ok filename 匹配包含 ok,Ok,oK,OK 的全部行 -h 查詢多文件時(shí)不顯示文件名 grep -h 123 *.txt 不加 -h 時(shí)會在每一行前顯示該行所在文件名 -l 查詢多文件是只顯示包含匹配字符的文件名 -n

2、查詢匹配行及行號 顯示不包含匹配文本的-v 全部行 -. 同時(shí)顯示匹配行上下的?行 如: grep -2 123 filename 同時(shí)顯示匹配行的上下 2 行; 正就: 錨定行的開頭 p; $如: grep匹配全部以 grep 開頭的行; 錨定行的終止 . 如: grep$匹配全部以 grep 結(jié)尾的行; 匹配一個(gè)非換行符的字符 如: gr.p匹配 gr 后接一個(gè)任意字符,然后是 *匹配零個(gè)或多個(gè)從前字符 grep 的行; 如: *grep 匹配全部一個(gè)或多個(gè)空格后緊跟 .* 一起用代表任意字符; 匹配一個(gè)指定范疇內(nèi)的字符 的一個(gè)字母開頭,緊跟 rep 的行; 如Ggrep 匹配 Grep

3、和 grep; 匹配一個(gè)不在指定范疇內(nèi)的字符 如: A-FH-Zrep 匹配不包含 A-R 和 T-Z . 標(biāo)記匹配字符 如love , love 被標(biāo)記為 1; 錨定單詞的開頭 grep 開頭的單詞的行; 如: 錨定單詞的終止 grep 結(jié)尾的單詞的行; 如grep 匹配包含以 b 單詞鎖定符 如: bgrepb 只匹配 grep; 特殊事項(xiàng): 1.引號的使用 第一說明引號的作用,在 shell 中使用 grep 一般要打引號,例如: grep 這樣做, 一是防止被誤會為 shell 命令, 二是可以查找多個(gè)單詞的字符串; 如,aaa bbb;假如 沒引號,將會把 bbb 誤認(rèn)為文件; 第

4、1 頁,共 7 頁一般在 grep 中輸入字符串參數(shù)是打雙引號 ,如: $mystr=aaa;grep $mystr file , 這樣 $mystr 會先被替換成 aaa,執(zhí)行操作是 grep aaa file ;而在單引號中, $mystr 不被 識別,因此, 單引號一般用在正就表達(dá)式的匹配上 與 shell 命令中的特殊方式混淆; 2.egrep 和 grep -E 的元字符擴(kuò)展 ,這樣可防止于 grep 中使用的模式 egrep 是擴(kuò)展的 grep,支持基本正就和擴(kuò)展正就,等同于 grep -E;擴(kuò)展集如下: + 匹配一個(gè)或多個(gè)從前的字符; 如: a-z+able ,匹配一個(gè)或多個(gè)小寫

5、字母后跟 able 的串; a|b|c 匹 a 或 b 或 c; 配 grep|sed 匹配 grep 或 sed 如: 分組符號 如: loveable|rs匹配 loveable 或 lovers; egrep 仍支持將一個(gè)文件作為儲存的字符串,然后將之傳給 用 -f 開關(guān); egrep 作為參數(shù),需使 字符類 為了在不同國家的字符編碼中保持一至, Interface 增加了特殊的字符類;:alnum: 文字?jǐn)?shù)字字符 :alpha: 文字字符 POSIXThe Portable Operating System :print: 非空字符(包括空格) :punct: 標(biāo)點(diǎn)符號 :digit:

6、 數(shù)字字符 :space: 全部空白字符 :graph: 非空字符 (非空格,把握字符) :upper: 大寫字符 :lower: 小寫字符 :cntrl: 把握字符 :xdigit: 十六進(jìn)制數(shù)字( 0-9,a-f,A-F ) grep 支持這種模式,例如: grep :upper:lower: file ;使用時(shí)要打雙中括號; awk awk 是一種編程語言, 用于在 linux/unix 下對文本和數(shù)據(jù)進(jìn)行處理; 數(shù)據(jù)可以來自標(biāo)準(zhǔn) 輸入, 一個(gè)或多個(gè)文件, 或其它命令的輸出; 它支持用戶自定義函數(shù)和動態(tài)正就表達(dá)式等先 進(jìn)功能,是 linux/unix 下的一個(gè)強(qiáng)大編程工具; 選項(xiàng) -F

7、指定輸入文件折分隔符; -f 從腳本文件中讀取 awk 命令; 模式和操作: awk 腳本是由模式和操作組成的: pattern action 如 $ awk /root/ test ,或 $ awk $3 output_file test ;上式表示假如第一個(gè)域的值等于 100,就把它輸出到 output_file 中;也 可以用 來重定向輸出,但不清空文件,只做追加操作; 輸出重定向需用到 getline 函數(shù); getline 從標(biāo)準(zhǔn)輸入,管道或者當(dāng)前正在處理的文件之 外的其他輸入文件獲得輸入; system 函數(shù)可以在 awk 中執(zhí)行 linux 的命令;如: $ awk BEGINs

8、ystemclear ; fflush 函數(shù)用以刷新輸出緩沖區(qū),假如沒有參數(shù),就刷新標(biāo)準(zhǔn)輸出的緩沖區(qū),假如以空 字符串為參數(shù),如 fflush, 就刷新全部文件和管道的輸出緩沖區(qū); 流程把握: awk 中的流程把握語句是從 條件語句 if/else else if ; C 語言中借鑒過來的,可把握程序的流程; 循環(huán)有三種 :while 循環(huán); for 循環(huán); special for 循環(huán); break 用于在中意條件的情形下跳出循環(huán); 第 4 頁,共 7 頁continue 用于在中意條件的情形下忽視后面的語句,直接返回循環(huán)的頂端; next 語句從輸入文件中讀取一行,然后從頭開頭執(zhí)行 awk 腳本;如: if $1 /test/nextelse print exit 語句用于終止 awk 程序,但不會略過 END 塊; 數(shù)組: 用變量作為數(shù)組下標(biāo);如: $ awk namex+=$2;ENDfori=0;ithis is a example example 頭的行后面, sed 要求命令 a 后面有一個(gè)反斜杠; n 下一個(gè) this is a example被追加到以 test 開 $ sed /test/ n; s/aa/bb/; example 假如 test 被匹配,就移動到匹配行的下一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論