初识sed用法

1.sed简介

sed(stream editor)流编辑器,通常用于文本数据行的插入、删除、替换等操作,默认情况下只是对所操作行或者操作的文件放到缓冲区中进行处理,处理之后输出到屏幕,否则被操作的文件或者文本的源文件是不会发生变化的,通过重定向或者-i操作来达到修改源文件的目的

2.sed参数介绍

-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。

-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。

具体指令:

1)d:删除(del),可以删除单行内容也可以删除行与行之间的内容

2)p:打印(print),显示出指定行的内容,搭配-n,指定行number

3)a:新增插入(alter)后接字符串,意味着在指定行的后一行插入字符串

4)i:插入(insert)后接字符串,意味着在指定行的前一行插入字符串,功能正好与a相反

5)c:转换(convert)后接字符串,替换字符串的意思,可以指定多行之间的内容进行替换

6)s:替换,将指定行的string1替换为string2,语法一般为1,3s/string1/string2/g

3.sed命令

sed命令格式:

3.1.sed [options] 'commands' filename(s)

3.2 删除操作

[rhino@promote ~]$ sed '2d' pp.txt > dd.txt #删除第二行内容

[rhino@promote ~]$ sed '$d' pp.txt > dd.txt   #删除最后一行

[rhino@promote ~]$ sed '1,3d' pp.txt >dd.txt #删除第一行到第三行内容(包括第一行和第三行)

[rhino@promote ~]$ sed '2,$d' pp.txt > dd.txt #删除第二行以后所欲内容(包括第二行)

【说明】

1)2d代表删除第二行内容

2)$d代表删除最后一行内容,'$'代表最后一行

3)多行之间的内容以数字起始,用逗号进行分割,代表两行之间的内容,包括这两行内容

3.3 显示文件的指定行内容

1)[rhino@promote ~]$ sed -n '2p' pp.txt #显示文件pp的第二行内容

2)[rhino@promote ~]$ sed -n '$p' pp.txt #显示文件pp的最后一行内容

3)[rhino@promote ~]$ sed -n '1,3p' pp.txt #显示文件pp第一行到第三行的内容

4)[rhino@promote ~]$ sed -n '1,$p' pp.txt #显示文件pp第一行到最后一行的内容

3.4 在指定行下面插入指定字符串

1)[rhino@promote ~]$ sed -i '3a case ' pp.txt #在文件的第三行下面插入字符串case

2)[rhino@promote ~]$ sed -i '1,3a util ' pp.txt #在1,2,3的每行下面都插入字符串util

3)[rhino@promote ~]$ sed -i '$a util ' pp.txt  #在最后一行下面插入字符串util

4)[rhino@promote ~]$ sed -i '3a case\n you bb ' pp.txt #在第三行下面插入两行内容,使用\n回车符在两行内容之间

3.5 在指定行上面插入指定字符串

1)[rhino@promote ~]$ cat pp.txt |sed '2i comment' #将pp.txt文件的第二行上面也就是第一行下面,即第2行上插入comment,但是是对缓冲区文件进行操作,源文件并未改变

3.6 替换指定行或者指定行间的内容

1)[rhino@promote ~]$ cat pp.txt  |sed "2,3c comment" #将第2行和第行的内容替换为comment

3.7 进行相同字符串的替换

1)[rhino@promote ~]$ sed '2,4s/month/yeamon/g' pp.txt #将第2和4行之间的month替换为yeamon,注意"/g"选项,如果没有加g,而是sed '4s/month/yeamon/'pp.txt是指将第4行中第一个month进行替换,该行的其余month不改变

2)[rhino@promote ~]$ sed '1,$s/month/yeamon/g' pp.txt #将全文中所有的month进行替换

3.8 多点编辑,即同时指定多个选项进行处理

1)[rhino@promote ~]$ cat pp.txt |sed -e '1,2c comment' -e s/month/field/g  #使用-e参数进行多点编辑




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值