日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux grep和正则表达式

發布時間:2025/5/22 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux grep和正则表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?雖然正則表達式經常都在用,但是很少能夠靜下心來仔細的總結一下。最近看了一個臺灣人的網站叫做鳥哥Linux私房菜,關于正則表達式的描述挺詳細的。在此,我進行一下總結,如果想仔細的學習正則表達式,請訪問鳥哥Linux私房菜,臺灣同胞的網站是繁體中文的,需要點兒耐心。

???? 正則表達式只是字符串的一種描述,只有和支持正則表達式的工具相結合才能進行字符串處理。本文以grep為例來講解正則表達式。

grep命令

功能:輸入文件的每一行中查找字符串。

基本用法:

grep [-acinv] [--color=auto] [-A n] [-B n] '搜尋字符串' 文件名 參數說明: -a:將二進制文檔以文本方式處理 -c:顯示匹配次數 -i:忽略大小寫差異 -n:在行首顯示行號 -A:After的意思,顯示匹配字符串后n行的數據 -B:before的意思,顯示匹配字符串前n行的數據 -v:顯示沒有匹配行-A:After的意思,顯示匹配部分之后n行-B:before的意思,顯示匹配部分之前n行 --color:以特定顏色高亮顯示匹配關鍵字

???? –color選項是個非常好的選項,可以讓你清楚的明白匹配了那些字符。最好在自己的.bashrc或者.bash_profile文件中加入:

alias grep=grep --color=auto

???? 每次grep搜索之后,自動高亮匹配效果了。

???? ‘搜尋字符串’是正則表達式,注意為了避免shell的元字符對正則表達式的影響,請用單引號(’’)括起來,千萬不要用雙引號括起來("”)或者不括起來。

???? 正則表達式分為基本正則表達式和擴展正則表達式。下面分別簡單總結一下。

基本正則表達式

???? 正則表達式學習,主要是對正則表達式元數據的學習。正則表達式本身沒有什么高深的東西,本文僅僅對基本正則表達式的元數據進行一下總結:

元數據

意義和范例

^word搜尋以word開頭的行。

?

例如:搜尋以#開頭的腳本注釋行

grep –n ‘^#’ regular.txt

?

word$搜尋以word結束的行

?

例如,搜尋以‘.’結束的行

grep –n ‘.$’ regular.txt

?

.匹配任意一個字符。

?

例如:grep –n ‘e.e’ regular.txt

匹配e和e之間有任意一個字符,可以匹配eee,eae,eve,但是不匹配ee。

?

\轉義字符。

?

例如:搜尋’,’是一個特殊字符,在正則表達式中有特殊含義。必須要先轉義。

grep –n ‘\” regular.txt

?

*前面的字符重復0到多次。

?

例如匹配gle,gogle,google,gooogle等等

grep –n ‘go*gle’ regular.txt

?

[list]匹配一系列字符中的一個。

?

例如:匹配gl,gf。

grep –n ‘g[lf]’ regular.txt

?

[n1-n2]匹配一個字符范圍中的一個字符。

?

例如:匹配數字字符

grep –n ‘[0-9]’ regular.txt

?

[^list]匹配字符集以外的字符

?

例如:grep –n ‘[^o]‘ regular.txt

匹配非o字符

?

\{n1,n2\}前面的字符重復n1,n2次

?

例如:匹配google,gooogle。

grep –n ‘go\{2,3\}gle’ regular.txt

?

\<word單詞是的開頭。

?

例如:匹配以g開頭的單詞

grep –n ‘\<g’ regular.txt

?

word\>匹配單詞結尾

?

例如:匹配以tion結尾的單詞

grep –n ‘tion\>’ regular.txt

?

擴展正則表達式

???? grep一般情況下支持基本正則表達式,可以通過參數-E支持擴展正則表達式,另外grep單獨提供了一個擴展命令叫做egrep用來支持擴展正則表達式,這條命令和grep -E等價。雖然一般情況下,基本正則表達式就夠用了。特殊情況下,復雜的擴展表達式,可以簡化字符串的匹配。

???? 擴展正則表達式就是在基本正則表達式的基礎上,增加了一些元數據。

元數據

意義和范例

+重復前面字符1到多次。

?

例如:匹配god,good,goood等等字符串。

grep –nE go+d’ regular.txt

?

?匹配0或1次前面的字符

?

例如,匹配gd,god

grep –nE ‘go?d’ regular.txt

?

|或(or)的方式匹配多個字串??
例如:grep –nE ‘god|good’ regular.txt

?

匹配god或者good。

?

()匹配整個括號內的字符串,原來都是匹配單個字符

?

例如:搜尋good或者glad

grep –nE ‘g(oo|la)’ regular.txt

?

()前面的字符重復0到多次。

?

例如匹配gle,gogle,google,gooogle等等

grep –nE ‘go*gle’ regular.txt

?

???? Linux下面正則表達式博大精深,上文支持總結了最常用的部分,如果熟練掌握的上面部分的正則表達式基本上可以滿足日常使用了。

???? 另外Linux很多命令支持正則表達式,比如find,sed,awk等

轉載于:https://www.cnblogs.com/onmyway20xx/p/4635195.html

總結

以上是生活随笔為你收集整理的linux grep和正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。