【云计算】sed基本用法sed文本块处理、sed高级应用
小标 2019-01-23 来源 : 阅读 1211 评论 0

摘要:本文主要向大家介绍了【云计算】sed基本用法sed文本块处理、sed高级应用,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】sed基本用法sed文本块处理、sed高级应用,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

sed是流式编辑器,逐行处理和非交互的特点


sed命令的常用选项如下:


-n(屏蔽默认输出,默认sed会输出读取文档的全部内容)


-r(让sed支持扩展正则)


-i(sed直接修改源文件,默认sed只是通过内存临时修改文件,源文件无影响)


1)sed命令的 -n 选项


执行p打印等过滤操作时,希望看到的是符合条件的文本。但不使用任何选项时,默认会将原始文本一并输出,从而干扰过滤效果


下面看看sed工具的p指令案例集锦(自己提前生成一个a.txt文件)


[root@svr5 ~]# sed -n ‘p’ a.txt //输出所有行,等同于cat a.txt


[root@svr5 ~]# sed -n ‘4p’ a.txt //输出第4行


[root@svr5 ~]# sed -n ‘4,7p’ a.txt //输出第4~7行


[root@svr5 ~]# sed -n ‘4,+10p’ a.txt //输出第4行及其后的10行内容


[root@svr5 ~]# sed -n ‘/^bin/p’ a.txt //输出以bin开头的行


[root@svr5 ~]# sed -n ‘=’ a.txt //输出文件的行数 2)下面看看sed工具的d指令案例集锦(自己提前生成一个a.txt文件) [root@svr5 ~]# sed ‘3,5d’ a.txt //删除第3~5行 [root@svr5 ~]# sed ‘/xml/d’ a.txt //删除所有包含xml的行 [root@svr5 ~]# sed ‘/xml/!d’ a.txt //删除不包含xml的行,!符号表示取反 [root@svr5 ~]# sed ‘/^install/d’ a.txt //删除以install开头的行 [root@svr5 ~]# sed ‘" role="presentation">=’a.txt//输出文件的行数


2)下面看看sed工具的d指令案例集锦(自己提前生成一个a.txt文件)


[root@svr5~]#sed‘3,5d’a.txt//删除第3~5行


[root@svr5~]#sed‘/xml/d’a.txt//删除所有包含xml的行


[root@svr5~]#sed‘/xml/!d’a.txt//删除不包含xml的行,!符号表示取反


[root@svr5~]#sed‘/^install/d’a.txt//删除以install开头的行


[root@svr5~]#sed‘=’a.txt//输出文件的行数2)下面看看sed工具的d指令案例集锦(自己提前生成一个a.txt文件)[root@svr5~]#sed‘3,5d’a.txt//删除第3~5行[root@svr5~]#sed‘/xml/d’a.txt//删除所有包含xml的行[root@svr5~]#sed‘/xml/!d’a.txt//删除不包含xml的行,!符号表示取反[root@svr5~]#sed‘/^install/d’a.txt//删除以install开头的行[root@svr5~]#sed‘d’ a.txt //删除文件的最后一行


[root@svr5 ~]# sed ‘/^$/d’ a.txt //删除所有空行


3)sed命令的s替换基本功能(s/旧内容/新内容/选项):


[root@svr5 ~]# vim test.txt //新建素材


2017 2011 2018


2017 2017 2024


2017 2017 2017


[root@svr5 ~]# sed ‘s/2017/xxxx/’ test.txt


[root@svr5 ~]# sed ‘s/2017/xxxx/g’ test.txt


[root@svr5 ~]# sed ‘s/2017/xxxx/2’ test.txt


[root@svr5 ~]# sed ‘s/2017//2’ test.txt


[root@svr5 ~]# sed -n ‘s/2017/xxxx/p’ test.txt


4)下面看看sed工具的s指令案例集锦(自己提前生成一个a.txt文件)


注意:替换操作的分隔“/”可改用其他字符,如#、&等,便于修改文件路径


[root@svr5 ~]# sed ‘s/xml/XML/’ a.txt //将每行中第一个xml替换为XML


[root@svr5 ~]# sed ‘s/xml/XML/3’ a.txt //将每行中的第3个xml替换为XML


[root@svr5 ~]# sed ‘s/xml/XML/g’ a.txt //将所有的xml都替换为XML


[root@svr5 ~]# sed ‘s/xml//g’ a.txt //将所有的xml都删除(替换为空串)


[root@svr5 ~]# sed ‘s#/bin/bash#/sbin/sh#’ a.txt //将/bin/bash替换为/sbin/sh


[root@svr5 ~]# sed ‘4,7s/^/#/’ a.txt //将第4~7行注释掉(行首加#号)


[root@svr5 ~]# sed ‘s/^#an/an/’ a.txt //解除以#an开头的行的注释(去除行首的#号)


编写anonftp.sh脚本,用来装配匿名FTP服务


1)任务需求及思路分析


vsftpd服务的安装、改目录权限、起服务等操作可以直接写在脚本中。


修改vsftpd.conf配置的工作可以使用sed命令,根据默认配置,只需要定位到以#anon开头的行,去掉开头的注释即可。


2)根据实现思路编写脚本文件


[root@svr5 ~]# vim anonftp.sh


!/bin/bash


yum -y install vsftpd //安装vsftpd软件


cp /etc/vsftpd/vsftpd.conf{,.bak} //备份默认的配置文件


sed -i “/^#anon/s/^#//” /etc/vsftpd/vsftpd.conf //修改服务配置


chmod 777 /var/ftp/pub //调整目录权限


systemctl start vsftpd //启动服务


systemctl enable vsftpd //设为自动运行


[root@svr5 ~]# chmod +x anonftp.sh


[root@svr5 ~]# ./anonftp.sh


sed [选项] ‘条件指令’ 文件..


sed工具的多行文本处理操作:


i: 在指定的行之前插入文本


a:在指定的行之后追加文本


c:替换指定的行


注意:系统默认没有a.txt文件,需要自己创建一个测试文件!!!


[root@svr5 ~]# sed ‘2a XX’ a.txt //在第二行后面,追加XX


[root@svr5 ~]# sed ‘2i XX’ a.txt //在第二行前面,插入XX


[root@svr5 ~]# sed ‘2c XX’ a.txt //将第二行替换为XX


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved