摘要:Linux的grep工具功能只能实现查找,不能把查找的内容替换。然而sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找、删除、替换字符或字符串、调换字符串位置、直接修改文件内容等特定工作,针对文档的行来操作,例如.txt。
Linux的grep工具功能只能实现查找,不能把查找的内容替换。然而sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找、删除、替换字符或字符串、调换字符串位置、直接修改文件内容等特定工作,针对文档的行来操作,例如.txt。
[root@davery ~]# mkdir sed
[root@davery ~]# cd sed
[root@davery sed]# cp ../grep/passwd 0.txt
[root@davery sed]#
[root@davery sed]# pwd
/root/sed
[root@davery sed]# ls
0.txt
[root@davery sed]#
查找:sed -n ‘/关键词/‘p 文件名
[root@davery sed]# sed -n ‘2‘p 0.txt 显示第二行
[root@davery sed]# sed ‘15,$‘p 0.txt 显示15行到最后一行
[root@davery sed]# sed -n ‘1,$‘p 0.txt 显示全部
[root@davery sed]#sed -n ‘/^1/‘p 0.txt
[root@davery sed]#sed -n ‘/in$/‘p 0.txt
[root@davery sed]#sed -n ‘/r..o/‘p 0.txt
[root@davery sed]#sed -n ‘/oo*/‘p 0.txt
[root@davery sed]#sed -n ‘/oo*/‘Ip 0.txt 加入大写I,不区分大小写
删除:sed -n ‘关键词‘p 文件名 ,仅仅是在屏幕中列出未删除的行,其实原文件并没有被删除。
[root@davery sed]#sed -n ‘5‘p 0.txt
[root@davery sed]#sed -n ‘1,5‘p 0.txt
[root@davery sed]#sed -n ‘1,$‘p 0.txt
[root@davery sed]#sed -n ‘/root/‘p 0.txt
[root@davery sed]#sed -n ‘/^1/‘p 0.txt
[root@davery sed]#sed -n ‘/in$/‘p 0.txt
[root@davery sed]#sed -n ‘/r..o/‘p 0.txt
[root@davery sed]#sed -n ‘/oo*/‘p 0.txt
替换: s表示替换动作,g表示本行全局替换,除了用/作为分割符,也可用特殊字符#、@
[root@davery sed]# sed ‘1,2s/ot/to/g‘ 0.txt 第一二行,ot替换成to
[root@davery sed]# sed -r ‘1,2s/ot+/to/g‘ 0.txt
[root@davery sed]# sed ‘s#ot#to#g‘ 0.txt
[root@davery sed]# sed ‘s@ot@to@g‘ 0.txt
[root@davery sed]# sed ‘s/[0-9]//g‘ 0.txt
[root@davery sed]# sed ‘s/[a-zA-Z]//g‘ 0.txt
调换两个字符位置
[root@davery sed]# sed ‘s/\(root\)\(.*\)\(bash\)/\3\2\1/‘ 0.txt
[root@davery sed]# sed -r ‘s/(root)(.*)(bash)/\3\2\1/‘ 0.txt 加入-r表达式更清晰
bash:x:0:0:root:/root:/bin/root
[root@davery sed]# sed -r ‘s/(uaer)(.*)(bash)/\3\2\1/‘ 0.txt
bash1:x:1001:1004::/home/uaer1:/bin/uaer
[root@davery sed]# sed ‘s/^.*$/123&/‘ 0.txt 最前边加123
123root:x:0:0:root:/root:/bin/bash
123bin:x:1:1:bin:/bin:/sbin/NOLOGIN
直接修改文件内容
[root@davery sed]# sed -i ‘s/root/toor/g‘ 0.txt
[root@davery sed]# cat 0.txt
toor:x:0:0:toor:/toor:/bin/bash
例子
[root@davery sed]# sed ‘/root/‘p 0.txt 会显示所有行
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/NOLOGIN
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
[root@davery sed]# sed -n ‘/root/‘p 0.txt 只把关键词目标行显示出来
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@davery sed]# sed -nr ‘/root|bus/‘p 0.txt 加入r
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@davery sed]# sed -nr ‘/o+t/‘p 0.txt
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
[root@davery sed]# sed -nr ‘/o{2}/‘p 0.txt
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
本文由职坐标整理并发布,了解更多内容,请关注职坐标Linux频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号