以下內容首發自公眾號「小汪Waud」。
本期介紹在Linux環境下的正則表達式及grep命令。
正則表達式(Regular Expression)是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元及這些字元的特定組合,組成一個「規則字元串」,這個字元串用來表達對字元串的一種過濾邏輯。
正則表達式基本上是一種表示法,只要程序支持這種表示法,該程序就可以用來作為正則表達式的字元串處理之用。如vi、grep、awk、sed等程序支持正則表達式,所以可以使用正則表達式的特殊字元來進行字元串的處理。但例如cp、ls等命令並不支持正則表達式,所以只能用自己的通配符。
正則表達式依照 不同的嚴謹度 分為:基礎正則表達式和擴展正則表達式。
注意!
grep是一種強大的文本搜索工具,可以使用 正則表達式匹配模式 查找文件里符合條件的字元串,並列印出來。
有點類似於WORD里的查找功能。
grep支持三種正則表達式語法:Basic、Extended和perl兼容。 如果沒有提供正則表達式類型,grep將搜索模式解釋為基本的正則表達式。要將模式解釋為擴展正則表達式,請使用-E。
查看grep的幫助文檔,如下
基本用法
grep [OPTION]... PATTERN [FILE]...
高級用法
grep [-A] [-B] [--color=auto] "查找字元" [模式] [文件]
常用參數
首先通過cat命令查看samples.txt的內容,如下圖
如果想檢索以K為行首的行,通過以下命令即可得到
如果想檢索以Z為行尾的行,通過以下命令即可得到
如果想檢索三個字元其中前面為K,後面為D中間字元,為任意字元,通過以下命令即可得到
參考資料
https://www.runoob.com/linux/linux-comm-grep.html
https://www.bilibili.com/video/BV1Yy4y117SX?p=12