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

 

 

 

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