sed 常用正規表示式

2021-06-16 12:25:10 字數 2407 閱讀 9672

1.乙個比較實用的正規表示式

匹配html的嵌入** 

<[^>]*>

匹配[....]的嵌入碼

\[[^]]\\]

刪除僅由空字元組成的行

sed '/^[[:space:]]*$/d' filename

匹配html標籤

/\(<[^>]*>\)/
例如:從html檔案中剔除html標籤

sed 's/\(<[^>]*>\)//g;/^[[:space:]]*$/d'  file.html

例如:要從下列**中去除""及其中包括的**

[b:4c6c2a6554][color=red:4c6c2a6554]一. 替換[/color:4c6c2a6554][/b:4c6c2a6554]

sed 's/\[[^]]\\]//g' filename

匹配日期:

month, day, year [a-z][a-z]\, [0-9]\, [0-9]\

2003-01-28 或 2003.10.18 或 2003/10/10 或 2003 10 10

\([0-9]\[ /-.][0-2][0-9][ /-.][0-3][0-9]\)

匹配ip位址

\([0-9]\\.[0-9]\\.[0-9]\\.[0-9]\\)

\(\([0-9]\\.\)\[0-9]\\)

匹配數字串

[-+]*[0-9]\ 整數

[-+]*[0-9]\\.[0-9]\  浮點數

從字串中解析出兩個子串(前2各字元和後9個字元)

echo "welovechinaunix"|sed -e 'h;s/\(..\).*/\1/;x;s/.*\(.\\)$/\1/;x;g;s/\n/ /' 

we chinaunix

分解日期串

echo 20030922|sed 's/\(....\)\(..\)\(..\)/\1 \2 \3/'|read year month day 

echo $year $month $day

檔案內容倒序輸出

sed '1!g;h;$!d'  oldfile >newfile

sed的s命令用來做正則替換。可以使用的正規表示式:位置^: 表示句首. 如 ^abc 表示以 abc 開始的句子.

$: 表示句尾. 如 abc$ 表示以 abc 結尾的句子.

\<: 表示詞首. 如 \: 表示詞尾. 如 abc\> 表示以 abc 結尾的詞.數量以下為數量控制符號,專門用來表示前乙個 char. set 的出現次數 常見的有:

*: 表示前乙個 char. set 的出現次數為 0 或多次. 如 ab*c 表示 a 與 c 之間可有 0 或多個 b 存在.

?: 表示前乙個 char. set 的出現次數為 0 或 1 次. 如 ab?c 表示 a 與 c 之間可有 0 或 1個 b 存在.

+: 表示前乙個 char. set 的出現次數為 1 或多次. 如 ab+c 表示 a 與 c 之間可有 1 或多個 b 存在.

: 表示前乙個 char. set 的出現次數必須為 n 次. 如 abc 表示 a 與 c 之間必須有 3 個 b 存在.: 表示前乙個 char. set 的出現次數至少為 n 次. 如 abc 表示 a 與 c 之間至少有 3 個 b 存在.

: 表示前乙個 char. set 的出現次數為 n 到 m 次. 如 abc 表示 a 與 c 之間有 3 到 5 個 b 存在.字符集. 任意字元

[:alnum:] 字母數字 [a-z a-z 0-9]

[:alpha:] 字母 [a-z a-z]

[:blank:] 空格或製表鍵

[:cntrl:] 任何控制字元

[:digit:] 數字 [0-9]

[:graph:] 任何可視字元(無空格)

[:lower:] 小寫 [a-z]

[:print:] 非控制字元

[:punct:] 標點字元

[:space:] 空格

[:upper:] 大寫 [a-z]

[:xdigit:] 十六進製制數字 [0-9 a-f a-f]

轉義使用\做轉義,比如 \/ 表示 /

\( \) 之間的可以在後面使用 \1 \2 等做替換,看第幾次\( \)內容配對。

sed 正規表示式

如果testfile的內容是 welcome to the world of regexp 現在要去掉所有的html標籤,使輸出結果為 hello world welcome to the world of regexp 怎麼做呢?如果用下面的命令 sed s g testfile 結果是兩個空行,...

Linux正規表示式 sed

相比於grep,sed可以替換內容並輸出到螢幕上。sed 選項 動作 filename選項 n 將經過sed命令處理過的行輸出到螢幕 e 允許對輸入資料應用多條sed命令 i 用sed的修改結果直接修改所讀取的檔案 動作 d 刪除 p 列印 s 字串替換 本行 g 本行全域性替換 列印 etc pa...

正規表示式 sed 用法

可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行,美元符號 表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定 呼叫sed命令有兩種形式 a 在當前行後面加入一行文字。b lable ...