shell程式設計基礎 字元擷取(sed)

2021-10-03 11:08:03 字數 951 閱讀 9476

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...