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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

26期20180703 正则 grep

發布時間:2025/3/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 26期20180703 正则 grep 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7月3日任務

9.1 正則介紹_grep上
9.2 grep中
9.3 grep下
擴展
把一個目錄下,過濾所有*.php文檔中含有eval的行
grep -r --include="*.php" 'eval' /data/



正則表達式


使用grep可以查找文件中的關鍵字。

語法: grep? "關鍵字" 文件名


有一些選項是可以選的。

-n 是顯示行號


-c顯示行數,一共在這個文件中有多少行帶有這個關鍵字


-v取反,就是多少行沒有這個關鍵字,也就是除了關鍵字的那兩行外


-A 數字,表示顯示出關鍵字以及往下數字行的內容


-B 數字,是和A想反是往上數字行


-C 數字 就是既有上又有下,往上數字行 往下數字行




grep '[0-9]' filename?

表示0-9范圍里的數字匹配?

也可以采用排除的選項 -v?

grep -v '[0-9]' filename


關鍵字里的參數


grep -v '^#' filename?

grep -v '^[0-9]' filename? 就是查找非開頭為數字的行

-v是取反 ^是行開始的意思? ^#就是以#為開頭的行?

?



grep -v ‘^#’ inittab 取出來首字母不為#的行


注意:這個^是在[]里面

grep '[^0-9]' inittab 作用是非0-9,只要不是數字任何一個字符都符合要求。就是說哪怕有一個字符不為0,這一行都滿足要求。

這個是以一個非數字的字符開頭的行,只要不是數字開頭都符號,哪怕是后面有數字都沒有關系。所以下面

同樣的,假如前面再加上一個 ^ 就表示首位也不能是數字,所以首位有數字的也沒了。


grep 'r.o' passwd 這里的點代表了任意一個字符,占位符。


grep 'o*o' passwd *表示左邊匹配0到無限次,右邊必須存在

如果是使用'.*'的話,表示匹配任意字符。*的左邊可有可無嘛

比如像找某個用戶的那一行,直接用'用戶名.*bash' 就可以查到


正則中{}表示范圍,但是需要用阻轉義符 \

grep 'o\{2\}' passwd 表示有2個o的?

grep 'o\{1,3\}' passwd 表示1-3個o,記得用逗號,


但是轉義符比較免費,看起來也比較不舒服,是否可以不用\??

那樣的話,egrep就登場了

egrep是grep的擴展

grep -E = egrep

egrep 'o{2}' passwd等同于 grep 'o\{2\}' passwd 等同于 grep -E 'o{2}' passwd

如果是像匹配最后一個字符是什么字母的話,需要在這個字母后面加上$ 換行符 表面后面沒有了

比如查找s開頭n結尾


+ 在egrep 或者 grep -E下使用無需轉義符?

+和*很像,區別是 + 表示+左邊一次或者無數次 而*是表示左邊0次或者無數次


egrep 'o?t' passwd 問號表示問號前面字符出現的次數為0或者1

?


|表示或者,但是也需要使用egrep或者grep -E 來使用。|是選其一,可以有多個


轉載于:https://blog.51cto.com/13691454/2135770

總結

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

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