linux正則表達式學習

1.通配符也叫文件名替換,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv;


* 匹配0或者多個字符;?{a,b,c}當用逗號分隔時,查找效果和[abc]是一樣的

2.正則表達式主要是作用于匹配文件中的字符串,常用命令命令是grep、awk、sed


"{}"是擴展正則,所以grep不能直接使用,需要加-E或者使用egrep

. 句點(.)匹配任何單個字符? 前面的項目是可選的,且最多匹配一次* 前面的項目將匹配零次或多次+ 前面的項目將匹配一次或多次{n} 前面的項目恰好匹配n次{n,} 前面的項目恰好匹配n次或更多次{,m} 前面的項目最多匹配m次。{n,m} 前面的項目至少匹配n次,但不超過m次。[:almum:] 字母數字字符,等同于[0-9A-Za-z][:alpha:] 字母字符,等同于[A-Za-z][:blank:] 空白字符:空格和制表符[:cntrl:] 控制字符[:digit:] 數字:0-9[:graph:] 圖形字符[:lower:] 小寫字母[:print:] 可打印字符:[:almum:]、[:punct:]和空格[:punct:] 標點符號[:space:] 空格字符;制表符、換行符、垂直制表符、換頁符、回車符和空格[:upper:] 大寫字母[:xdigit:] 十六進制數字\b 匹配詞語兩側的空字符串\B 匹配詞語中間的空字符串< 匹配詞語開頭的空字符串> 匹配詞語末尾的空字符串\w 匹配詞語組分\W 匹配非詞語組分\s 匹配空格\S 匹配非空格

https://blog.csdn.net/weixin_43770382/article/details/119214331

通配符中,{}可以用來表示連續的字符,但是在正則表達式中,是表示前面字符出現的次數

3.多選結構與其他正則表達式的組合

匹配文件列表中以bz、gz或zip開頭的文件名

grep -Eh '^(bz|gz|zip)' dirlist*.txt

上例中去除括號,匹配以bz開頭、或者包含gz,或者包含zip的文件名

grep -Eh '^bz|gz|zip' dirlist*.txt

常用grep選項表

grep還有很多其他選項,使用man page可以對它們進行研究

4.?Less和Vim中使用正則表達式搜索文本

#執行less命令后,先輸入斜杠,然后輸入正則表達式進行匹配

/^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$

Vim只支持BRE,因此上述的正則表達式得改寫成這樣

/([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}$

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容