shell中的文字處理工具之grep

2021-10-04 11:28:08 字數 2784 閱讀 6639

1、grep

1.1 基本介紹

grep (globally search a regular expression and print)一種強大的文字搜尋工具,能使用特定模式匹配(包括正規表示式)搜尋文字,並預設輸出匹配行。unix的grep家族包括grep、egrep和fgrep。windows系統下類似命令findstr。

egrep和fgrep的命令只跟grep有很小不同。egrep和fgrep均為grep的擴充套件,支援更多的re元字元,fgrep就是fixed、grep或fast grep,它們把所有的字母都看作單詞,也就是說,正規表示式中的元字元表示回其自身的字面意義,不再特殊。linux使用gnu版本的grep。並且可以通過-g、-e、-f命令列選項來使用egrep和fgrep的功能。

1.2 工作方式

grep在乙個或多個檔案中搜尋字串模板。如果模板包括空格,則必須被引用,模板後的所有字串被看作檔名。搜尋的結果被送到螢幕,不影響原檔案內容。grep可用於shell指令碼,因為grep通過返回乙個狀態值來說明搜尋的狀態,如果模板搜尋成功,則返回0,如果搜尋不成功,則返回1,如果搜尋的檔案不存在,則返回2。我們利用這些返回值就可進行一些自動化的文字處理工作。

1.3 基本用法

格式:grep 匹配條件 處理檔案

示例:

grep root passwd             ##過濾出有關root的行

引數:引數

含義示例

^以某字元開頭

grep ^root passwd

$以某字元結尾

grep root$ passwd

-i忽略大小寫

grep -i root passwd

\<

之前無字元

grep -e  "\\>

之後無字元

grep -e "root\>" passwd

-num

顯示匹配字元的前後num行

grep -num

-n顯示行號

grep -n

-a顯示匹配字元的num下行

grep -a num

-b顯示匹配字元的num下行

grep -b num

-v逆向顯示

grep -v

【注】示例中的 -e 和表示 egrep 該命令的使用和後面的匹配格式有關(與正規表示式的規則相同)。

命令演示:

實驗素材建立:

將/etc/passwd 分為上下兩部分,並分別儲存於/mnt/passwd1 和/mnt/passwd2 中;並修改passwd1的內容:

引數:

1.4 匹配字元個數規則

用法:w---s         #w s 為匹配字元的首尾,----表述輸入的規則;

引數含義:規則

表示所含字元個數

.每個點表示乙個佔位,可有多個

*表示任意多個

?0或1個

+大於等於1個

n個大於等於n個

m到n個

0-n個

(ee)

有n個ee

【注】這裡的規則依然和正規表示式相同,因為正規表示式較為複雜,這裡將使用的列出。

命令演示:

實驗素材:

編寫檔案test,內容如下:

引數:

shell中的文字處理工具之awk

1.用法 awk f 分隔符 begin end filename 1.行數,列數 命令作用 nr行數 nf列數 練習 2.條件 用法 作用 條件1 條件2 條件1或者條件2 條件1 條件2 條件1或者條件2 條件1 條件2 條件1並且條件2 0 所有的列 1 第一列 2 第二列 3 第三列 練習 ...

文字處理工具

參考 man,info,magedu講義 宣告 以下英文純屬個人翻譯,英文b級,歡迎糾正,以下內容純屬個人理解,並沒有對錯,只是參考,盜版不糾,才能有限,希望不誤人子弟為好。these commands read and write entire files,possibly transformin...

文字處理工具

linux 上文字處理三劍客 grep 文字過濾工具 模式 pattern awk linux上的實現為gwak 文字報告生成器 格式化文字 正規表示式 regual expression regexp 由一類特殊字元及文字所編寫的模式,其中有些字元表示其字面意義,grep options colo...