博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed命令使用
阅读量:5948 次
发布时间:2019-06-19

本文共 3223 字,大约阅读时间需要 10 分钟。

  hot3.png

sed命令

sed工具的用法有很多地方和grep相似,但是grep实现的只是查找而不能替换,sed工具则可以这么操作。

命令格式

sed [options] 'command' file(s)sed [options] -f scriptfile file(s)

选项

  • p : 打印出来,重复相同两行即表示匹配到了结果

  • n : 仅显示script处理后的结果

    [root@yolks1 sed]# sed -n '/root/'p test.txt	root:x:0:0:root:/root:/bin/bash	operator:x:11:0:operator:/root:/sbin/nologin	user4:x:1006:1005::/home/user4_creat_by_root:/sbin/nologin

    展示一个区间的数据

    [root@yolks1 sed]# sed -n '1,$'p test.txt #第1行到结尾,即全部显示	[root@yolks1 sed]# sed -n '1,3'p test.txt #第1行到第3行的数据	[root@yolks1 sed]# cat -n test.txt 1	root:x:0:0:root:/root:/bin/bash 2	bin:x:1:1:bin:/bin:/sbin/nologin 3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • e<script>或--expression=<script> : 以选项中的指定的script来处理输入的文本文件,支持多个行为

    [root@yolks1 sed]# sed -e '1'p -e '/bus/'p -n test.txt	root:x:0:0:root:/root:/bin/bash	dbus:x:81:81:System message bus:/:/sbin/nologin
  • I :将匹配大写和小写都显示出来

    [root@yolks1 sed]# sed -n '/nologin/'Ip test.txt	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	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin	operator:x:11:0:operator:/root:/sbin/nologin	games:x:12:100:games:/usr/games:/sbin/nologin

    正则用法和grep的非常类似,特殊字符也同样可以使用

    [root@yolks1 sed]# sed -ne '/^#/'p test.txt #匹配以‘#’开始的	###skjslopsss	[root@yolks1 sed]# sed -ne '/^[0-9]/'p test.txt #匹配以数字开头的	152662272682782728	[root@yolks1 sed]# sed -n '/r.o/'p test.txt #匹配r'任意符号'o的字符	root:x:0:0:root:/root:/bin/bash	operator:x:11:0:operator:/root:/sbin/nologin	user4:x:1006:1005::/home/user4_creat_by_root:/sbin/nologin
  • d :删除某些行 (并不是真正意义上的删除文件行内容,而是仅仅不显示d的内容)

    [root@yolks1 sed]# wc -l test.txt	42 test.txt	[root@yolks1 sed]# sed '1,40'd test.txt	ntp:x:38:38::/etc/ntp:/sbin/nologin	tcpdump:x:72:72::/:/sbin/nologin	[root@yolks1 sed]# wc -l test.txt	42 test.txt
  • i : 配合上面的d选项则可以真正删除

    [root@yolks1 sed]# sed -i '1,40'd test.txt	[root@yolks1 sed]# wc -l test.txt	2 test.txt

    按匹配内容进行删除

    [root@yolks1 sed]# sed -i '/ntp/'d test.txt	[root@yolks1 sed]# cat -n test.txt 1	tcpdump:x:72:72::/:/sbin/nologin
  • s/被替换的/要替换的/g :替换字符或字符串

    [root@yolks1 sed]# sed '1,$s/nologin/loginno/g' test.txt	tcpdump:x:72:72::/:/sbin/loginno

    可以看到nologin被替换成了loginno,这里s表示替换指定字符,g表示本行全局替换,使用方法和vim里的如出一辙

  • 调换两个字符串的位置

    [root@yolks1 sed]# head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'	/sbin/nologin:x:72:72::/:tcpdump	[root@yolks1 sed]# sed -r 's/([^:]+):(.*):([^:]+)/\2:\1:\3/' test.txt	x:72:72::/:tcpdump:/sbin/nologin

    小括号在sed中属于特殊符号,必须在前面加脱义字符“\”或者使用“-r”参数或者还可以使用其他特殊符号替换分隔符 例如#和@,否则无效,上例中用()把想要替换的字符打包成一个整体,替换时写成\3\2\1或\2\3\1。

  • 删除文档中的所有数字或者字母 : 原理使用空进行替换

    [root@yolks1 sed]# sed 's/[a-zA-Z]//g' test.txt |head	::0:0::/://	::1:1::/://	::2:2::/://	152662272682782728	###	::3:4:://://	::4:7::///://	::5:0::/://	::6:0::/://	::7:0::/://
  • 给每行前面加固定字符,例如:aaa

    [root@yolks1 sed]# head test.txt |sed -r 's/(.*)/aaa:\1/g'	aaa:root:x:0:0:root:/root:/bin/bash	aaa:bin:x:1:1:bin:/bin:/sbin/nologin	aaa:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN	aaa:152662272682782728	aaa:###skjslopsss	aaa:adm:x:3:4:adm:/var/adm:/sbin/nologin	aaa:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin	aaa:sync:x:5:0:sync:/sbin:/bin/sync	aaa:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown	aaa:halt:x:7:0:halt:/sbin:/sbin/halt

转载于:https://my.oschina.net/yolks/blog/1839705

你可能感兴趣的文章
视频会议十大开源项目排行
查看>>
SQL Server Management Studio 简单使用说明
查看>>
【前端】javascript判断undefined、null、NaN;字符串包含等
查看>>
玩转iOS开发 - 数据缓存
查看>>
李洪强-C语言3-数组
查看>>
C# 6.0的字典(Dictionary)的语法
查看>>
使用ShareSDK实现第三方授权登录、分享以及获取用户资料效果,项目中包含:源码+效果图+项目结构图...
查看>>
三级联动效果
查看>>
Sprite和UI Image的区别
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql/mysql.sock' (2)
查看>>
python练习笔记——丑数的计算
查看>>
OpenCV + python 实现人脸检测(基于照片和视频进行检测)
查看>>
XSS 前端防火墙 —— 天衣无缝的防护
查看>>
Node.js umei图片批量下载Node.js爬虫1.00
查看>>
客户端拖动控件封装(让拖动变得更简单)
查看>>
linux下IPTABLES配置详解
查看>>
Sharepoint学习笔记—习题系列--70-576习题解析 -(Q131-Q134)
查看>>
iOS边练边学--iOS中的(ARC下)单粒模式(GCD实现)
查看>>
php get_magic_quotes_gpc()函数用法介绍
查看>>
SQL to Java code for Elasticsearch
查看>>