1.数据准备
准备数据如下:
[root@openEuler ~]# cat openlab.txt My name is jock. I teach linux. I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com
2.题目
2.1、输出文件第2,3行的内容:
[root@openEuler ~]# sed -n '2,3p' openlab.txt I teach linux. I like play computer game.
2.2、过滤出含有linux的字符串行:
[root@openEuler ~]# sed -n '/linux/p' openlab.txt I teach linux.
2.3、删除含有game的行:
[root@openEuler ~]# sed '/game/d' openlab.txt My name is jock. I teach linux. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com
2.4、删除第5行到结尾:
[root@openEuler ~]# sed '5,$d' openlab.txt My name is jock. I teach linux. I like play computer game. My qq is 24523452
2.5、将文件中的My全部替换为His:
[root@openEuler ~]# sed 's/My/His/g' openlab.txt His name is jock. I teach linux. I like play computer game. His qq is 24523452 His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com
2.6、替换所有My为His,同时换掉QQ号为88888888:
[root@openEuler ~]# sed -e 's/My/His/g' -e 's/24523452/88888888/g' openlab.txt His name is jock. I teach linux. I like play computer game. His qq is 88888888 His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com His website is http://www.xianoupeng.com
2.7、在文件第二行追加内容( a 字符功能),写入到文件(-i):
[root@openEuler ~]# sed -i '2a I like liunx' openlab.txt [root@openEuler ~]# cat openlab.txt My name is jock. I teach linux. I like liunx I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com
2.8、添加多行信息,用换行符“\n”:
[root@openEuler ~]# sed -i '3a I like liunx very much!\nand you?' openlab.txt [root@openEuler ~]# cat openlab.txt My name is jock. I teach linux. I like liunx I like liunx very much! and you? I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com
2.9、在每一行下面插入新内容:
[root@openEuler ~]# sed 'a ----------------------------------------' openlab.txt My name is jock. ---------------------------------------- I teach linux. ---------------------------------------- I like liunx ---------------------------------------- I like liunx very much! ---------------------------------------- and you? ---------------------------------------- I like play computer game. ---------------------------------------- My qq is 24523452 ---------------------------------------- My website is http://www.xianoupeng.com ---------------------------------------- My website is http://www.xianoupeng.com ---------------------------------------- My website is http://www.xianoupeng.com ---------------------------------------- My website is http://www.xianoupeng.com ---------------------------------------- My website is http://www.xianoupeng.com ---------------------------------------- My website is http://www.xianoupeng.com ----------------------------------------
2.10、在第二行上面插入内容:
[root@openEuler ~]# sed -i '2i I am a boy.' openlab.txt [root@openEuler ~]# cat openlab.txt My name is jock. I am a boy. I teach linux. I like liunx I like liunx very much! and you? I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com
注意:sed对文件进行操作处理时,改变的只是内存中的文件数据,源文件的数据不会发生改变,如果想对文件内的内容进行处理则需要加上 -i 这个选项。
3.补充-----sed的工作流程
如图所示:
如上面的图片一样,sed工作时会一行一行的读取文件内容,每次读取一行放入sed模式空间,然后与匹配模式相匹配,不管匹配成功还是失败,都会输出到屏幕上。失败则是直接将原内容输出,成功则是输出编辑处理过的数据。默认的输出可以取消(使用-n 选项) 。
还没有评论,来说两句吧...