sed [選項] '[動作]' 檔名
[選項]:
-n: 一般sed命令會把所有的資料都輸出到螢幕,如果加入此選擇,則把經過sed命令處理的行輸出到螢幕;
-e: 允許對輸入資料應用多條sed命令編輯;
-i: 用sed的修改結果直接修改讀取資料的檔案,而不是由螢幕輸出;
-f :直接將 sed 的動作寫在乙個檔案內, -f filename 則可以執行 filename 內的 sed 動作;
-r :sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法);
[動作]:
a\ :新增行, a 的後面可以是字串,而這些字串會在新的一行出現(目前的下一行)
c\ :取代行, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行
d :刪除行,因為是刪除,所以 d 後面通常不接任何引數,直接刪除位址表示的行;
i\ :插入行, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed -n 一起執行;
s :替換,可以直接進行替換的工作,通常這個 s 的動作可以搭配正規表示法,例如 1,20s/old/new/g 一般是替換符合條件的字串而不是整行;
案例:1、只輸出第二行內容
sed -n '2p' test.txt
2、刪除第二行到第四行(只是刪除輸出)
sed '2,4d' test.txt
3、第二行後面新加一行aa
sed '2a aa' test.txt
4、第二行上面新加一行aa
sed '2i aa' test.txt
5、第四行輸出檔案字元替換88替換99
sed '4s/99/88/g' test.txt
6、改變原始檔
sed -i '4s/99/88/g' test.txt
Shell字串擷取
一 linux shell 擷取字元變數的前8位,有方法如下 substr var 開始擷取位 擷取長度 1.expr substr a 1 8 2.echo a awk 3.echo a cut c1 8 4.echo 5.expr a 6.echo a dd bs 1 count 8 2 dev...
shell指令碼字元擷取
linux 的字串擷取很有用。有八種方法。假設有變數 var 1.號擷取,刪除左邊字元,保留右邊字元。複製 如下 echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 即刪除 http 結果是 www.aaa.com 123.htm 2.號擷取,刪除左邊字元,保...
shell字串擷取
filed under shell shell字串的擷取的問題 一 linux shell 擷取字元變數的前8位,有方法如下 1.expr substr a 1 8 2.echo a awk 3.echo a cut c1 8 4.echo 5.expr a 6.echo a dd bs 1 cou...