Linux sed命令详解
Posted jacqueline95
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux sed命令详解相关的知识,希望对你有一定的参考价值。
- 增:a(小写) append 追加,后
- I(小写) insert 插入,前
- C(小写) change 替换,把这行的内容替换为你写的
- 删:d
- 改:s
cat sed.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,su,XO
题:在oldboy或Alex的行下面都增加12306,su,CTO
[root@localhost /]# sed -r '/oldboy|Alex/a12306,su,CTO ' sed.txt
101,oldboy,CEO
12306,su,CTO
102,zhangyao,CTO
[root@localhost /]# sed -r '/oldboy|Alex/a11111
22222 ' sed.txt
101,oldboy,CEO
11111 注:
表示回车
22222
102,zhangyao,CTO
- 题:删除从Alex到lidao的行
[root@localhost /]# sed -i '/Alex/,/lidao/d' sed.txt
- 题:删除1到3行
[root@localhost /]# sed -i '1,3d' sed.txt
- 题:删除第一行和第三行
[root@localhost /]# sed -i '1d;3d' sed.txt
3.1实验环境:echo -e 'oldboy
oldboy
lidao
alex
oldbey' >blank.txt
题:不显示文件中的空行:grep sed
不显示文件中的空行(有的空行包含连续的空格)
3.2思路规律:
1.空行(纯粹空行) ^$
2.只有空格 或者多个空格
3.3解决方案:基础用法?egrep -v '^$|^ +$' blank.txt
sed -ri '/^$|^ +$/d' blank.txt
高级用法? egrep -v '^ *$' blank.txt
egrep -v '[^$| ]' blank.txt
注: [^] 相当于-v; 排除,取反
^ 在[ ]里是取反的意思
sed 修改(替换)
sed 's###g'
s == substitute sub 替换
g == global 全局 默认会替换第1个匹配的内容
[root@localhost /]# cat aa.txt
oldboy
alex
oldgirl
- 题:用sed 把oldboy替换为oldgirl
[root@localhost ~]# sed -i 's#oldboy#oldgirl#g' /oldboy/aa.txt
- 修改文件前先备份
sed -i.bak 's#oldboy#oldgirl#g' /oldboy/aa.txt
- sed后向应用
题:取出网卡ip地址
[root@localhost /]# ip a s eth0 |sed -rn '3s#inet(.*)/24.*#1#gp'
10.0.0.200
实验环境:[root@localhost ~]# seq 40 > /oldboy/junjun.txt
用sed显示/oldboy/junjun.txt文件里的第三行 |
sed -n '3p' /oldboy/junjun.txt
sed -n '30,40p' /oldboy/junjun.txt
[root@localhost oldboy]# sed -n '/5/p' junjun.txt
5
15
25
35
[root@localhost oldboy]# sed -n '/33/,/36/p' junjun.txt
33
34
35
36
以上是关于Linux sed命令详解的主要内容,如果未能解决你的问题,请参考以下文章
Linux学习011sed命令详解
linux shell sed命令的问题!
linux之sed命令详解
linux sed命令参数及用法详解
linux sed命令详解(转)
linux下sed命令详解