sed 的使用(二) -- a/, i/, c/ 追加,插入和刪除

sed 的追加,插入和刪除

 

追加[line-address]a/ text

插入[line-address]i/ text

更改[line-address]c/ text

 

這些命令都要求後面跟一個/用於轉義第一個結尾。text必須從下一行開始。要輸入多行文本,每個邊疆的行都必須用反斜槓結束,最後一行例外。

 

cat test

=> TS abcd abcd

      3 abcd ai bi ci

      TE 4abcd

-----------------------------------------------------------------

sed '/^TS/,/^TE/i/<test>' test  #插入是在行之前進行的

=> <test>

      TS abcd abcd

      <test>

      3 abcd ai bi ci

      <test>

      TE 4abcd

-----------------------------------------------------------------

sed '/^TS/,/^TE/c/<test>' test #將TS-TE之間的內容完全替換爲<test>

=> <test>

-----------------------------------------------------------------

sed '1i<test>' test     #可以指定數字,在第1行插入

=> <test>

      TS abcd abcd

      3 abcd ai bi ci

      TE 4abcd

------------------------------------------------------------------

如果想插入之行,可以將插入的內容寫到一個文件中

/^TS/,/^TS//i

<test1>/

<test2>/

<test3>

 

sed -f testinsert test

=>

<test1>

<test2>

<test3>

TS abcd abcd

<test1>

<test2>

<test3>

 3 abcd ai bi ci

<test1>

<test2>

<test3>     

TE 4abcd

 


sed 的轉換

sed '/^TS/,/^TE/y/abc//xyz/' test #這種轉換是沒有詞的概念,只要是字母abc都變爲xyz

=>

TS xyzd xyzd

3 xyzd xi yi zi

TE 4xyzd

 

sed 的打印

sed -n '/TS/p' test  #只對匹配的行打印

=>

TS xyzd xyzd

 

sed -n /TS/{=;p} test   #打印行號和行

=>

1

TS xyzd xyzd

 

 

sed 的讀文件與寫文件

 

cat test2

=>

test2

 

sed '$r test2' test       #在test文件之後讀入test2文件的內容

=>

TS abcd abcd

3 abcd ai bi ci

TE 4abcd

test2

 

sed '/^TS/r test2' test  #在以TS行開頭的行之後,插入test2文件的內容

=>

TS abcd abcd

test2

3 abcd ai bi ci

TE 4abcd

 

sed '/^TS/w test3' test  在以TS行開頭的行寫入文件test3中

cat test3

=>

TS abcd abcd

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章