Linux之sed命令专题篇

1 篇文章 0 订阅
1 篇文章 0 订阅

本文为了给小伙伴们熟悉linux的常用sed命令,特地出个专题篇按照从易到难的逐渐递增的顺序来举例使用命令

八大命令: p-打印命令、d-删除命令、s-替换命令、e-多重编辑命令、a-追加命令、i-插入命令、c-修改命令、y-转换命令

先创建一个例子,以供接下来测试使用  ceshi.txt  #例子纯属作者太爱国,所以语文必须都是100分

name      no.  chinese   english   total                                      
zhangsan  4    100       4         104
lisi      3    100       3         103
waner     5    100       5         105
mazi      2    100       2         102
author    1    100       60        160
 

注意:如果想直接复制命令调试看看运行可否,请不要复制ceshi.tex后面的空格号否则会报错没有文件

1)p-打印命令 

sed '/zhangsan/p' ceshi.txt #'/string/'为匹配格式,string指要匹配的字符串,然后p-打印命令是在匹配到的字符串下面打印一次,所以结果显示为有zhangsan的这一行输出两次,结果为fig1。所以p-打印命令一般和n一起用以获得筛选出的行,(     sed -n '/zhangsan/p' ceshi.txt           )如fig2。                                    #记住此处的 -n 这是一个特殊含义符号,使用安静模式,在一般情况所有                                         的 STDIN 都会输出到屏幕上,加入-n 后只打印被 sed 特殊处理的行

fig1
fig2    命令为:sed -n '/zhangsan/p' ceshi.txt     水印让作者我嘛了

          把前缀涂掉是作者怕讲的不好你知道我是哪个学校的想找我麻烦

2)d-删除命令

sed '/zhangsan/d' ceshi.txt    #将匹配到zhangsan的这行删除

 其他用法

sed '1,4d' ceshi.txt   #删除1-4行内容                                  #记住此处这个表示范围的特殊符号

sed '3,$d' ceshi.txt  #删除第三行到最后一行内容

 

3)s替换命令

sed -n 's/[0-9].0/99/p' ceshi.txt #s/string/replacestring/,第二个/为指示符,前面的内容为匹配内容,后面的为替换内容,将匹配内容替换成替换内容,不要搞错了    #记住这个[0-9]  还有 . 又是特殊符号 [0-9]表示匹配0-9内的一个字符,点表示除换行符外的任意一个字符,所以匹配内容为100,替换成99         友友们可以试试把[0-9].0后面那个0换成[0-9]就会发现后面的超过一百的数字也会变成99但是此时需要加上另一个特殊符号g,表示全局变量,否则只会匹配到处理行的首个匹配到的字符,即第一行[0-0].[0-9]匹配到的是99 ,这里有个空格的,加上g则第一行匹配到两个99 和104

 sed -n 's/zhangsan/xiaoyl/p' ceshi.txt

结果(作者怕水印阻挡结果干脆手打):           xiaoyl    4    99          4                104

4)e-多重编辑命令

sed -e '1,2d' -e 's/mazi/麻子/' ceshi.txt #先执行第一个-e后的命令即删除1-2行,然后执行第二个将mazi替换成麻子

 友友们可以试一下  sed -n -e '1,2d' -e 's/^[a-m].../麻子/gp' ceshi.txt #把前面学的都用上,-n和p结合输出处理的行,处理的行=匹配到开头为[a-m]后跟三个任意字符的行然后替换成麻子   #记住这个^又是一个特殊字符,为行首定位符

5)a-追加命令

 sed '/^author/a xiaoyl    1    100       60        160' ceshi.txt #在匹配到的行后加入了一行内容

 sed '/author/a -----------------\

>hello,world' ceshi.txt #记住这个\又是一个特殊字符,为换行符

6)i-插入命令 

sed  '/author/i hello,world\

>------------------' ceshi.txt #在匹配到的行之前插入内容

 7) c-修改命令

sed '/mazi/c 麻子' ceshi.txt #将匹配到的行内容修改,此修改和替换不一样,为全覆盖

 8)-y 转换命令

sed '1,3y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' ceshi.txt #将第一到三行匹配的字符一一对应替换a-A

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值