文字處理工具grep

2021-10-14 13:12:53 字數 2464 閱讀 8496

linux中的文字處理三劍客:

grep:文字過濾工具(模式:pattern)工具

sed:stream editor。流編輯器;文字編輯工具

awk:linux上的實現為gawk,文字報告生成器(格式化文字)

grep:

作用:文字搜尋工具,根據使用者指定的「模式(過濾條件)」對文字逐行匹配檢查後列印匹配到的行

grep命令使用格式:

grep

[options] pattern [file]

grep

[options]

[-e pattern | -f [file 1]

[file2]

]

grep 預設在alias中是 grep --color=auto

options:

--color=auto 對匹配到的文字著色後高亮顯示

-i ignorecase 忽略字元的大小寫

-o 僅顯示匹配到的字元本身

-v,--invent-match 對匹配的字元行進行反選

-q,--quiet,--silent 對匹配到的字元行不進行列印

-a # after:列印匹配到的字元行的下#行

-b # before:列印匹配到的字元行的上#行

-c # context:列印匹配到的字元行的上下#行

基本正規表示式的元字元:

字元匹配:

( . ) 匹配任意單個字元

grep

"r..t" /etc/passwd

(  )匹配指定範圍內的任意單個字元
grep

" r[[ :alpha: ]] [[ :alpht ]]t" /etc/passwd

( [^] )匹配指定範圍外的任意單個字元
grep

"^[[:space]]\+[^[space:]]" /etc/grub2.cfg

pattern :

[[ :digitt: ]] 匹配的為 0-9

[[ :lower: ]] 匹配小寫

[[ :upper: ]] 匹配大寫

[[ :alpha: ]] 匹配任意字母

[[ :alnum: ]] 匹配任意字母和數字

[[ :punct: ]] 匹配任意標點符號

[[ :space: ]] 匹配空白字元

匹配次數:用在要指定出現次數的字元的後面,用於限制其前面字元出現的次數

(*)匹配前面的字元任意次

例如:grep "x*y"

abxy 匹配

aby 匹配

***y 匹配

yab 匹配

(.*)匹配任意字元

(\?)匹配0次或者1次 。前面的字元可有可無

(\+)匹配其前面的字元一次或者多次。至少一次

\ 匹配其前面的字元m次。

\ 匹配其前面字元至少m次,至多n次

\至多n次

\至少m次

位置錨定:

^: 行首錨定;用於模式的最左側

grep

"^root" /etc/passwd

$:行尾錨定:用於模式的最右側
greo "root$" /etc/passwd
grep "^root$" 只能是這乙個單詞。

^pattern$: 用於pattern來匹配整行

^$: 空白行 空格不屬於空白行

^[[ :space]]*$ 匹配空行或空白字元的行

\< 單詞在最左側

grep

"\/etc/passwd

\>單詞在最右側
grep

"root\>" /etc/passwd

\< \>精確錨定單詞
grep

"\" /etc/passwd

分組及引用:

\(\) 將乙個或多個字元**在一起,當作乙個整體進行處理

\(xy\)*ab

分組括號中的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中,這些變數為:

linux文字處理工具之grep

常用的grep選項 c 只輸出匹配行的計數。這條有時候很有用,不需要再 wc l i 不區分大小寫 只適用於單字元 h 查詢多檔案時不顯示檔名。l 查詢多檔案時只輸出包含匹配字元的檔名。n 顯示匹配行及行號。s 不顯示不存在或無匹配文字的錯誤資訊。v 顯示不包含匹配文字的所有行。例子grep v s...

文字處理工具

參考 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...