ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux sed命令详解

2020-01-02 13:02:02  阅读:306  来源: 互联网

标签:oldboy 详解 junjun sed Linux txt root localhost


Sed简介

sed作用:增删改查

  1. 增:a(小写) append 追加,后
  2. I(小写) insert 插入,前
  3. C(小写) change 替换,把这行的内容替换为你写的
  4. 删:d
  5. 改:s

sed执行思路

sed 增删案列

实验环境

 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\n22222 ' sed.txt 
101,oldboy,CEO
11111                       注:\n表示回车
22222 
102,zhangyao,CTO

删除

  1. 题:删除从Alex到lidao的行
[root@localhost /]# sed -i '/Alex/,/lidao/d' sed.txt
  1. 题:删除1到3行
[root@localhost /]# sed -i '1,3d' sed.txt
  1. 题:删除第一行和第三行
[root@localhost /]# sed -i '1d;3d' sed.txt

sed面试题

3.1实验环境:echo -e 'oldboy\n\noldboy\n    \n  lidao\n \nalex  \n\noldbey' >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 修改(替换)
sed 's###g'
s == substitute  sub 替换 
g == global          全局 默认会替换第1个匹配的内容

实验环境

[root@localhost /]# cat aa.txt 
oldboy
alex
oldgirl

替换

  1. 题:用sed 把oldboy替换为oldgirl
[root@localhost ~]# sed -i 's#oldboy#oldgirl#g' /oldboy/aa.txt 
  1. 修改文件前先备份
sed -i.bak 's#oldboy#oldgirl#g' /oldboy/aa.txt
  1. sed后向应用
题:取出网卡ip地址
[root@localhost /]# ip a s eth0 |sed -rn '3s#inet(.*)/24.*#\1#gp'
     10.0.0.200

sed 取行案列

实验环境:[root@localhost ~]# seq 40 > /oldboy/junjun.txt

用sed显示/oldboy/junjun.txt文件里的第三行

sed -n '3p' /oldboy/junjun.txt 

用sed显示文件的30到40行内容

sed -n '30,40p' /oldboy/junjun.txt 

显示包含5字符的行

[root@localhost oldboy]# sed -n '/5/p' junjun.txt 
5
15
25
35

显示包含33字符到36字符的行

[root@localhost oldboy]# sed -n '/33/,/36/p' junjun.txt 
33
34
35
36

标签:oldboy,详解,junjun,sed,Linux,txt,root,localhost
来源: https://www.cnblogs.com/jacqueline95/p/12132331.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有