Linux centos7 sed工具介绍
一、sed上
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 centos7 sed工具介绍的更多相关文章
- Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步
一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...
- 用户管理 之 Linux 用户管理工具介绍
Linux是一个多用户的操作系统,她有完美的用户管理工具,这些工具包括用户的查询.添加.修改,以及用户之间相互切换的工具等:通过这些工具,我们能安全.轻松的完成用户管理: 在这里我们要引入用户控制工具 ...
- linux学习——sed工具
命令格式: sed [-nefr] [动作] 1.sed可以分析标准输入(STDIN)的数据,然后将数据处理后,再将他输出到标准输出(STDOUT),他有替换.删除.新增.选定特定行等处理功能.sed ...
- Linux CentOS7 VMware正则介绍、grep工具、egrep表达式
一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式 ...
- Linux程序分析工具介绍—ldd,nm
原文链接:http://blog.csdn.net/statdm/article/details/7759100 本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具.ldd是用来分析 ...
- linux程序分析工具介绍(三)——sar
本文要介绍的sar,是linux下用来分析系统本身运行情况的非常有用的工具.我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO).我们的应用程序在操作系统中运 ...
- linux程序分析工具介绍(二)—-ldd,nm
本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具.ldd是用来分析程序运行时需要依赖的动态库的工具:nm是用来查看指定程序中的符号表相关内容的工具.下面通过例子,分别来介绍一下这两 ...
- linux程序分析工具介绍(一)—-”/proc”
写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看l ...
- Linux centos7 awk工具
一.awk介绍 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk含盖sed所有功能,把文件逐行的读入,以空格为默认分隔 ...
随机推荐
- Java入门笔记 03-面向对象(中)
介绍:这部分内容主要是介绍和总结封装.继承和多态. 一. 封装:把该隐藏的隐藏起来,把该暴露的暴露出来 封装是指将信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现 ...
- 连接数据库的url
mysql: jdbc:mysql://localhost:3306:test这句里面分如下解析:jdbc:mysql:// 是指JDBC连接方式:localhost: 是指你的本机地址:3306 S ...
- Vue——前端生成二维码
与后端生成二维码相比,前端生成二维码更具有灵活性,下面就介绍两种前端生成二维码的方式,两种方式相比之下,vue-qr比qrcode多了一个再中间添加logo的功能. 方式一:qrcode npm np ...
- kafka connector
Kafka Connect 是一种用于在 Kafka 和其他系统之间可扩展的.可靠的的流式传输数据的工具.它使得能偶快速定义将大量数据集合移入和移除 kafka 连接器变得简单. kafka conn ...
- vue cavnas绘制矩形,并解决由clearRec带来的闪屏问题
起因:在cavnas绘制矩形时 鼠标移动一直在监测中,所以鼠标移动的轨迹会留下一个个的矩形框, 要想清除矩形框官方给出了ctx.clearRect() 但是这样是把整个画布给清空了,因此需要不断 向画 ...
- SpringMvc 项目配置
spring-mvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&quo ...
- 通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)
Linux下的依赖关系令人头疼,尤其是提示如下错误的时候: 下列软件包有未满足的依赖关系: xxx : 依赖: xxx 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破 ...
- nyoj 100
怒刷水题... AC代码: #include <stdio.h> int main() { int x,t,count; scanf("%d",&t); whi ...
- centos610最小安装之后 后续设置
1.网络配置 centos选择最小桌面(如果不用到类似Oracle需要用到桌面的软件,则操作系统安装最小化安装)安装之后 查看网络配置如下: 截图显示网络并未启用. 2.开启网络设置 cd /etc/ ...
- java.util.ConcurrentModificationException 异常原因和解决方法
不要在 foreach 循环里进行元素的 remove/add 操作.remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁. 注意: 1.foreach遍历 ...