sed 用法及实例

 

 

sed 用法及实例
 
 

1.       打印:p
[root@TestAs4 chap04]# cat datafile               原文件
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed  -n '/north/p' datafile   取消默认输出 只打印包含模板的行
northwest       NW      Charles Main            3.0     .98     3       34
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9

[root@TestAs4 chap04]# sed '/north/p' datafile       打印包含模板的行及打印默认输出
northwest       NW      Charles Main            3.0     .98     3       34
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

2.       删除:d
   [root@TestAs4 chap04]# sed '3d'  datafile            删除第三行
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed '3,$d'  datafile          删除第三行到最后的所有行
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23

[root@TestAs4 chap04]# sed '/north/d' datafile        删除所有包含模板north的行
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
central         CT      Ann Stephens            5.7     .94     5       13

3.       选定行的范围:逗号
    [root@TestAs4 chap04]# sed -n '/west/,/east/p' datafile     所有在模板west和east所确定的行都被打印
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17


[root@TestAs4 chap04]# sed -n '1,5'p datafile           打印第一、五行的内容
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17

[root@TestAs4 chap04]# sed  '/west/,/east/s/$/**?VACA**/' datafile   对于east和west之间的行,末尾用**?VACA**替换
northwest       NW      Charles Main            3.0     .98     3       34**?VACA**
western         WE      Sharon Gray             5.3     .97     5       23**?VACA**
southwest       SW      Lewis Dalsass           2.7     .8      2       18**?VACA**
southern        SO      Suan Chin               5.1     .95     4       15**?VACA**
southeast       SE      Patricia Hemenway       4.0     .7      4       17**?VACA**
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

[root@TestAs4 chap04]# sed  -n '/west/,/south/p' datafile                 
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
4.多点编辑:e命令
[root@TestAs4 chap04]# sed -e '1,3d' -e 's/Hemenway/Jones/' datafile    删除1到3行,用Hemenway替换Jones
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Jones  4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13


5. 从文件读入:r 命令
[root@TestAs4 chap04]# cat newfile
        nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
        | ***SUAN HAS LEFT THE COMPANY*** |
        |_________________________________|


[root@TestAs4 chap04]# sed  '/Suan/r newfile'  datafile       把newfile文件内容放到Suan行的下面
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
        nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
        | ***SUAN HAS LEFT THE COMPANY*** |
        |_________________________________|
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

注:如果不止一个Suan 则newfile的内容就将显示在所有匹配行的下面

6. 写入文件:w命令
[root@TestAs4 chap04]# sed  -n '/north/w  newfile2'  datafile   命令w表示把所有包含north的行写入到newfile2

[root@TestAs4 chap04]# cat newfile2
northwest       NW      Charles Main            3.0     .98     3       34
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9




7. 追加:a 命令
[root@TestAs4 chap04]#  sed '/^north/a ---->THE NORTH SALES DISTRICT HAS MOVED   
northwest       NW      Charles Main            3.0     .98     3       34
---->THE NORTH SALES DISTRICT HAS MOVED
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
---->THE NORTH SALES DISTRICT HAS MOVED
north           NO      Margot Weber            4.5     .89     5        9
---->THE NORTH SALES DISTRICT HAS MOVED
central         CT      Ann Stephens            5.7     .94     5       13
注: 在出现首个单词是north的后一行追加---->THE NORTH SALES DISTRICT HAS MOVED行

8. 插入: i 命令
[root@TestAs4 chap04]# sed '/eastern/i/
> NEW ENGLAND REGION/
> -------------------------------------' datafile
northwest       NW      Charles Main            3.0     .98     3       34
western         WE      Sharon Gray             5.3     .97     5       23
southwest       SW      Lewis Dalsass           2.7     .8      2       18
southern        SO      Suan Chin               5.1     .95     4       15
southeast       SE      Patricia Hemenway       4.0     .7      4       17
NEW ENGLAND REGION
-------------------------------------
eastern         EA      TB Savage               4.4     .84     5       20
northeast       NE      AM Main Jr.             5.1     .94     3       13
north           NO      Margot Weber            4.5     .89     5        9
central         CT      Ann Stephens            5.7     .94     5       13

注:如果模板eastern被匹配,i命令把反斜杠后面的文本插入到包含eastern的行的前面


9. 替换:s 命令

[root@TestAs4 oracle]# pwd
/u01/app/oracle
[root@TestAs4 oracle]# pwd  | sed  's///[^//]*$/old/'      把“/ u01/app/oracle”的 “/oracle”替换为old
/u01/appold
[root@TestAs4 chap04]# sed -n 's/Hemenway/Jones/pg' datafile      所有的Hemenway行被Jones 替换并打印
southeast       SE      Patricia Jones  4.0     .7      4       17

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shenghuiping2001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值