sed基本使用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sed基本使用

sed基本使用 (文中所用到的文件内容,见文档最后部分) ? 语法? sed?范围(条件)?命令?file 命令: ???d?:?删除 ????????范围:使用数字表示多少行(如35d,表示第35行,不写数字表示每读取一行到模式空间就删除一行) ? ??????使用“,”表示“到”(如10,35d,表示第10行到第35行) ? ??????使用“~”表示“跨步”(步进)(如:1?~?2d,表示第1行开始,跨步为2,即1、3、5、7。。。行) ? ? ??????也可使用正则表达式指定范围 ?使用正则表达式时必须使用“/?/”引起来 sed?/tom/d?aa?,删除包含tom的行 ? sed?/^tom/,/tom$/d?aa??,删除以tom开头的行到以tom结尾的行(两行之间) ? sed?/\btom\b/d?aa,?删除包含tom这个单词的行,完全匹配单词,诸如atom、aatom之类的不会被匹配?(\?\也可以进行单词完整匹配,如\?tom\) ? sed?/\btom\b/,/^tom\d+/d?aa?(格式样例,命令有误) ? s?:?替换??s/old/new/标签?file 分隔符“/”可替换其他的任意字符(如“#”),在替换内容存在诸如路径这样带有“/”符号的内容时,相对使用转义字符而言,更换分隔符,会使命令相对更简洁 old部分可以使用正则表达式,new部分不能使用正则表达式 ? sed?s/tom/TOM/?aa,?替换tom为TOM,默认只替换每行(匹配行)的第一个匹配 ? sed?s/tom/TOM/2?aa?,指定替换匹配行的第二个匹配,标签出数字默认为1,可根据实际情况指定数字 ? sed?s/tom/TOM/g?aa,?替换全部 ? sed?2,5s/tom/TOM/g?aa,?替换第2到第5行 ? sed?-n?2,7s/tom/TOM/gp?aa?,?-n:关闭默认输出,不输出到屏幕,使用p标签打印满足条件的行,即实现只打印满足条件的行,而不满足条件行的不再输出 ? sed?-n?2,7s/[tT][oO]m/TOM/gp?aa??,?t和o匹配是不区分大小写 ? ? (sed?-n?/aaa\s/p?aa?? ??sed?-n?/\aaa\/p?aa?,完全匹配单词aaa的行ping打印,两条命令等效) ? ? aa=`hostname`;sed?-n?/#ServerName?:80/ServerName?$aa/p?/etc/httpd/conf/httpd.conf aa=`hostname`;sed?-n?/#ServerName?:80/ServerName?$aa/p?/etc/httpd/conf/httpd.conf ???替换Apache的配置文件中的servername为本机主机名,以上两条命令等效,sed中变量需要加单引号或者直接把最外层的单引号改成双引号 ? sed?s/\/sbin\/nologin/\/bin\/bash/?passwd sed?s#/sbin/nologin#/bin/bash#?passwd 替换passwd中的/sbin/nologin为/bin/bash,以上两条命令等效,分隔符使用其他字符 ? sed?1{s/tom/TOM/g;s/aaa/AAA/g}?aaa sed?-n?1{s/tom/TOM/pg;s/aaa/AAA/pg}?aaa 执行两条sed命令?,命令执行流程如下: 首先读取第一行到模式空间,因为符合条件,执行第一条sed命令进行替换 之后执行第二条命令执行替换,这时模式空间中的内容已经不再是之前读入的文件第一行的内容,而是执行第一条命令替换后的结果 ? ? sed?-e?1s/tom/TOM/g?-e?1s/aaa/AAA/g?aaa -e表示后面的字符作为sed命令,如果只有一个命令,可以省略-e ? sed?s/^t..?/xxx/?aa 正则表达式匹配替换?把以t开头后面跟2个任意字符再跟一个空格的内容?替换为xxx ? 替换时,?new部分不能使用正则,但可以使用如下符号: :表示old的值 ???sed?s/tom/--/g?aa?,?替换tom为-tom-,即为old部分的tom,保留这部分内容,并在两边加上“-” ? \U:把\U后面的内容全部改为大写 ???sed?s/^t..?/\Uyyy/?aa?,正则表达式匹配替换?把以t开头后面跟2个任意字符再跟一个空格的内容?替换为YYY ? ???sed?s/^t..?/y\Uyyy/?aa?,替换为yYYY \u:把\u后面的第一个字符改成大写 ???sed?s/^t..?/\uyyy/?aa?,正则表达式匹配替换?把以t开头后面跟2个任意字符再跟

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档