基礎正規表示式字元和sed工具

2021-10-01 09:08:09 字數 2151 閱讀 7246

re字元

意義與範例

^word

意義:待查詢的字串(word)在行首 範例:查詢行首為#開始的那一行,並列出行號 grep-n 『^#』 regular_expresss.txt

word$

意義:待查詢的字串(word)在行尾 範例:查詢行尾為!的那一行列印出來,並列出行號 grep-n 『^!$』 regular_expresss.txt

.意義:代表乙個一定有任意字元的字元 範例:查詢的字串可以是eve eae eee ,但不能僅有(ee)!即e與e中間「一定」僅有乙個字元,而空格符也是乙個字元 grep-n 'e.e『 regular_expresss.txt

\意義:轉義字元,將特殊符號的特殊意義去除 範例:找出特有含有單引號』的那一行 grep-n 'regular_express.txt

*意義:重複零個到無窮多個的前乙個字元

[list]

意義:從字元集合的re字元裡面找出想要選取的字元

[[n1-n2]

意義:從字元集合的re字元裡面找出想要選取的字元範圍

[^list]

意義:從字元集合的re字元裡面找出不要的字串或範圍

\意義:連續n到m個前乙個re字元,若為\則是連續n個的前乙個re字元,若為則是連續n個以上的前乙個re字元

正規表示式的特殊字元與一般再命令列輸入命令的萬用字元並不相同。

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

sed

[-nefr]

[動作]

引數:-n:使用安靜(silent)模式,在一般sed的用法中,所有來自stdin的資料一般都會被列在螢幕上。

但如果加上-n引數後,則只有經過sed的特殊處理的那一行(或者操作)才會被列出來。

-f:直接將sed的動作寫在乙個檔案裡面,-f filename 則可以執行filename內的sed動作

-r:sed的動作支援的是擴充套件型正規表示式的語法

-i:直接修改讀取的檔案內容,而不是有螢幕輸出。

動作說明: [n1,[n2]

]function

n1,n2 : 不見得會存在,一般代表選擇進行的動作的行數,例如:

如果我的動作是需要在10到20 之間進行的,則"10,20[動作行為]"

function 有下面這些引數:

c : 替換,c的後面可以接字串,而這些字串可以替換n1,n2之間的行!

d : 刪除,因為是刪除,所以d的後面通常不接任何引數;

p : 列印,也就是將某個選擇的資料列印出來,通常p會與引數sed -n 一起執行。

s : 替換,可以直接進行替換的工作,通常這個s的動作可以搭配正規表示式!

例如:將/etc/passwd的內容列出並且列印行號,同時將第2~5行刪除

n1 /etc/passwd |

sed'2,5d'

刪除3-最後一行

n1 /etc/passwd |

sed'3,$d'

在第二行後面加上「drink tea」

n1 /etc/passwd |

sed'2a drink tea'

在第二行前面加上「drink tea」

n1 /etc/passwd |

sed'2i drink tea'

在第二行後面增加兩行

n1 /etc/passwd |

sed'2a drink tea \

>drink beer '

替換:將第2-5行的內容替換成「no 2-5 number」

n1 /etc/passwd |

sed 『2.5c no 2-5 number』

僅列出第5-7行

n1 /etc/passwd |

sed -n '5,7p'

注意:

命令中有個重要的引數 -n ,按照說明檔案,這個-n代表的是「安靜模式」,不加安靜模式的話,第5-7行就會重複輸出。

sed -i 's/\.$/\!/g' regular_express.txt

將regular裡面的每一行結尾為「.」的改為「!」

-i: 可以直接修改檔案內容,當檔案過大時不適合用vi開啟時,就可以利用sed直接修改或者替換的功能。

sed 正規表示式

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

sed命令和正規表示式

sed命令 告訴sed對指定行進行何種操作 命令 功能 a 在當前行後新增一行或多行 c 用新文字修改 替換 當前行中的文字 d 刪除行 i 在當前行之前插入文字 l 列出非列印字元 p 列印行 n 讀入下一輸入行,並從下一條命令而不是第一條命令處理 q 結束或退出sed 取反 s 用乙個字串替換另...

sed命令和正規表示式

sed命令 告訴sed對指定行進行何種操作 命令 功能 a 在當前行後新增一行或多行 c 用新文字修改 替換 當前行中的文字 d 刪除行 i 在當前行之前插入文字 l 列出非列印字元 p 列印行 n 讀入下一輸入行,並從下一條命令而不是第一條命令處理 q 結束或退出sed 取反 s 用乙個字串替換另...