以行為單位來進行字串的處理操作。主要分為:基礎正規表示式和擴充套件正規表示式
lang=c時,01234…abcd … zabcd…z
lang=zh_cn時,01234…aabbccdd…zz
下面都是以lang=c來記憶。
對於^而言,在內部為取反,在外部為行首,
sed [-nefri] [操作]
引數:-n:使用安靜(silent)模式,一般的用法中,所有來自stdin的資料一般都會被列出到螢幕上,但如果加上-n之後,則只有經過sed特殊處理之後的那一行(或操作)才會被列出來。
-e:直接在命令列模式進行sed的操作編輯。同時進行兩個操作的時候,需要使用-e
例:cat /etc/passwd | sed -e 『4d』 -e 『6c no six line』 >passwd.new
-i:直接修改讀取檔案的內容,而不是由螢幕輸出
引數後面的操作說明:[n1,[n2]] function
n1,n2:不見得會存在,一般代表選擇進行操作的行數
function包含以下幾項:
d:刪除
如:sed '/^$/d『 刪除空白行
sed 『2,5d』 刪除2~5行
sed 『3,$d』 刪除3到最後一行
c:替換,c後面可以接字元,這些字元可以替換n1,n2直接的行。若只有乙個數字則替換該行。
a:新增,a後面可以接字元,這些字元會在新的一行出現(目前的下一行)
如:nl /etc/passwd | sed '2a drink tea or…
>drink beer? 』 這表示在第三行新增drink tea or…在第四行新增drink beer?這裡必須以反斜槓來進行新行的增加。
i:插入,i後面可以接字元,這些字元會在新的一行出現(目前的上一行)
p:列印,通常與sed -n一起使用,將經過sed處理的那一行列印出來。
查詢並替換
sed 『s/要被替換掉的字元/新的字元/g』
sed 『s/#.*$//g』 將以#開始的注釋行都替換為空白行
直接修改檔案內容(危險操作)
sed -i 『s/\.$/\!/g』 regular.txt 將其中的每行結尾的任意字元替換為!
可以使用grep -e或者egrep 來使用正規表示式
特別需要注意:!在正規表示式不是特殊字元,反向選擇是^,而不是!
選擇不是a-z的字母,[^a-z],而不是[!a-z]
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...
linux正規表示式 Linux 的正規表示式
我們通過sed或awk工具可以輕鬆愉快的對一堆文字分析 對資料進行處理 伺服器報錯日誌的分析 伺服器使用者訪問日誌統計分析等。但是要玩耍好sed和awk工具,正規表示式是基礎,不得不掌握。特定字元 如 1 a a 範圍字元數字字元 0 9 代表0到9數字中的任意乙個 小寫字元 a z 代表a到z字母...
正規表示式 Linux
主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...