概述
sed命令是一個(gè)面向字符流的非交互式編輯器,也就是說sed不允許用戶與它進(jìn)行交互操作。sed是按行來處理文本內(nèi)容的。在shell中,使用sed來批量修改文本內(nèi)容是非常方便的。
sed命令的選項(xiàng)
sed [選項(xiàng)] [動(dòng)作]
選項(xiàng)與參數(shù):
-n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數(shù)據(jù)一般都會(huì)被列出到終端上。但如果加上 -n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來。
-e :直接在命令列模式上進(jìn)行 sed 的動(dòng)作編輯;
-f :直接將 sed 的動(dòng)作寫在一個(gè)文件內(nèi), -f filename 則可以運(yùn)行 filename 內(nèi)的 sed 動(dòng)作;
-r :sed 的動(dòng)作支持的是延伸型正規(guī)表示法的語法。(默認(rèn)是基礎(chǔ)正規(guī)表示法語法)
-i :直接修改讀取的文件內(nèi)容,而不是輸出到終端。
function:
a :新增行, a 的后面可以是字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)
c :取代行, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行
d :刪除行,因?yàn)槭莿h除,所以 d 后面通常不接任何參數(shù),直接刪除地址表示的行;
i :插入行, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行);
p :列印,亦即將某個(gè)選擇的數(shù)據(jù)印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)行
s :替換,可以直接進(jìn)行替換的工作,通常這個(gè) s 的動(dòng)作可以搭配正規(guī)表示法,例如 1,20s/old/new/g 一般是替換符合條件的字符串而不是整行
一般function的前面會(huì)有一個(gè)地址的限制,例如 [地址]function,表示我們的動(dòng)作要操作的行。下面我們通過具體的例子直觀的看看sed的使用方法。