Linux 正則 grep sed學習筆記

2022-07-15 19:21:10 字數 1701 閱讀 8715

正規表示式的實現分成了兩類: 基本正規表示式(bre)和擴充套件的正規表示式(ere)。

bre 和 ere 之間有什麼區別呢?這是關於元字元的問題。bre 可以辨別以下元字元:

^ $ . [ ] *
其它的所有字元被認為是文字字元。ere 新增了以下元字元(以及與其相關的功能):

( )  ? + |
在 bre 中,字元「(」,「)」,「」用反斜槓轉義後,被看作是元字元, 相反在 ere 中,在任意元字元之前加上反斜槓會導致其被看作是乙個文字字元。grep預設使用bre,egrep支援ere, gnu 版本的 grep 程式在使用了-e 選項之後也支援擴充套件的正規表示式。

基礎正規表示式彙總:

擴充套件正規表示式彙總:

元字元都被用來表達要求匹配的最小和最大數目。它們可以通過四種方法來指定:

『正規表示法的特殊位元組』與一般在命令列輸入命令的『萬用位元組』並不相同, 例如,在萬用位元組當中的 * 代表的是『 0 ~ 無限多個位元組』的意思,但是在正規表示法當中, * 則是『重複 0 到無窮多個的前乙個 re 字元』的意思,使用的意義並不相同。

sed 本身也是乙個管線命令,可以分析 standard input ,而且 sed 還可以將資料進行取代、刪除、新增、擷取特定行等等的功能。

sed 後面接的動作,請務必以 ' ' 兩個單引號括住。

如果只要刪除第 2 行,可以使用『 nl /etc/passwd | sed '2d' 』來達成, 若是要刪除第 3 到最後一行,則是『 nl /etc/passwd | sed '3,$d' 』,『 $ 』代表最後一行。

如果是要在第二行前呢?『 nl /etc/passwd | sed '2i drink tea' 』

一次性新增多行,每一行之間都必須要以反斜線『 \ 』來進行新行的新增。

-n 為安靜模式,只顯示出被sed處理的行。

Linux基礎正規表示式 grep,sed

先說明語系對正規表示式的影響 lang c 0,1,2,3,4.a,b,c,d.z a b c d z lang zh cn 0,1,2,3,4.a a b b c c d d.z z 因為不同語系用 a z 篩選的不同,所以出現了特殊符號 alnum 即0 9,a z,a z,英文大小寫字元和數字...

Linux中grep,sed的使用

今天,mayuyu來講一些linux中常用的命令。1.grep命令 grep用於過濾自己需要的內容,語法如下 grep mayuyu color 過濾出所有包含mayuyu的行,grep中也是支援正規表示式的。2.sed命令 使用普通的vim編輯器在編輯檔案時有兩個主要的問題 1 當檔案比較大的時候...

學習Grep,Sed中的正則 火丁筆記

學習grep,sed中的正則 火丁筆記 posted on 2010 10 31 by 老王 正則要是幾天不學習不用功,肯定會忘得一乾二淨,下面聊聊grep,sed中的正則。鑑於問題的需要,先杜撰乙份資料 shell cat path to data.txt 7654321 7654321 8765...