一、sed的介紹
二、sed的基本選項和用法
三、sed的高級用法
四、正則表達式符號git
sed是一種流編輯器,它在沒有加選項的狀況下,不會對文件自己進行修改,只會顯示修改結果在終端上,sed在處理空間時,會把當前行放到一個緩衝區中,稱爲「模式空間」,若是還須要處理,將模式空間中的行在放入‘’保持空間‘’,在須要的時候,在放到模式空間,通過一系列的處理,最終輸出到終端上,sed也支持正則表達式。正則表達式
基本選項
基本選項只會把文本內容傳輸到模式空間進行處理。
基本選項舉例
編輯命令舉例
查找替換功能編輯器
是一種文本搜索,根據用戶指定的「模式」對目標文本進行匹配檢查,打印匹配,支持正則表達式。ide
基本正則表達式符號工具
正則表達式 | 描述 | 實例 |
---|---|---|
/ | 轉義,將特殊字符轉變成自己意義 | echo $PS1 和 echo \$PS1 前者的意思是輸出變量的結果,後者是輸出$這個字符 |
^ | 匹配行首,從行首開始皮皮額匹配 | sed 's/^#//' file 表示把全部開頭爲#號的所有替換成空白 |
$ | 匹配行尾一直匹配到行尾 | sed 's/.conf$/.sh/' file 表示把以.conf結尾的行替換成以.sh結尾 |
. | 除\n外,匹配任意字符 | sed 's/r..t/user/' 表示中間兩個字符無論是什麼,匹配兩邊就行 |
[ ] | 匹配包含在[字符]之中的任意一個字符 | grep "[abc]" file 表示尋找該文件中全部的小寫abc字母 |
[^] | 匹配除了[ ] 以外的任意一個字符 | grep "[^a]" file 表示出了a其餘字符都匹配 |
[-] | 匹配[ ] 中 - 兩側劃分範圍中的任意一個字符 | grep "[0-9]" file 表示全部0-9的數字都匹配 |
? | 匹配以前的項1次或0次 | grep "[0-9]\?" file 表示0-9之間任意一個數字匹配0次或者1次 |
+ | 匹配以前項1次或者屢次 | grep "[0-9]\+" file 表示0-9之間任意一個數字至少匹配一次,能夠是屢次 |
* | 匹配以前項0次或者屢次 | grep "[0-9]*" file 表示0-9之間任意一個數字匹配0次或屢次 |
( ) | 匹配表達式,建立一個用於匹配的子串 | grep "([0-9][0-9])\+" file 表示的兩個[ ] 中的字符是一個總體 |
{n} | 匹配以前項n次,n能夠是正整數 | grep "[0-9]\{5\}" file 表示前面匹配5次 |
{n, } | 匹配以前項最少n次 | grep "[0-9]\{5,\}" file 表示前面最少匹配5次,能夠是5次以上 |
{n,m} | 匹配以前項最少n次,最多m次 | grep "[0-9]\{1,3\} file 表示最少匹配1次,最多匹配3次" |
{,m} | 匹配以前最多m次 | grep "[0-9]{,3}" file 表示最少能夠是0次,最多爲3次 |
POSIX字符類,只匹配類型,不匹配次數spa
正則表達式 | 描述 | 舉例 |
---|---|---|
[:alnum:] | 匹配任意一個字母或數字 | grep "[[:alnum:]]\+ file 表示至少一次字母或者是數字都匹配" |
[:alpha:] | 匹配任意一個字母 | grep "[[:alpha:]]\+" file 表示至少一次字母,無論大小寫 |
[:blank:] | 匹配空格 | grep "^[[:blank:]]\*^$" file 表示全部的空白行 |
[:digit:] | 匹配任意一個數字 | grep "[[:digit:]]\+" file 表示匹配全部的數字 |
[:lower:] | 匹配任意一個小寫字母 | grep "[[:lower:]]" file 表示全部小寫字母 |
[:upper:] | 匹配任意一個大寫字母 | grep "[[:upper:]]" file 表示全部代謝字母 |
[:punct:] | 匹配標點符號 | grep "[[:punct:]]" file 表示全部的標點符號 |
[:space:] | 匹配一個包括換行符,回車等在內的空白字符 | grep "[[:space:]]" file 表示全部空白字符,包括回車等 |
[:graph:] | 匹配一個能夠看見且能夠打印的字符 | grep "[[:graph:]]" file 表示匹配全部可見的打印字符 |
[:xdigit:] | 匹配任意一個十六進制 | grep "[[:xdigit:]]" file 匹配全部十六進制的字符 |
[:cntrl:] | 匹配一個任意控制字符 | grep "[[:cntrl:]]" file 匹配全部控制字符 |
[:print:] | 匹配任意一個能夠打印的字符 | grep "[[:print:]]" file 匹配全部能夠打印的字符 |
元字符3d
正則表達式 | 描述 |
---|---|
\b | 錨定單詞邊界與\<或 \>做用同樣 |
\B | 非單詞邊界 |
\d | 單個數字字符 |
\D | 單個非數字字符 |
\w | 單個單詞字符 |
\W | 單個非單詞字符 |
\n | 換行符 |
\s | 單個空白字符 |
\S | 單個非空白字符 |
\r | 回車 |
\t | 橫向製表符 |
\v | 垂直製表符 |
\f | 換頁符 |