《SED 单行脚本快速参考》的 awk 实现.docVIP

《SED 单行脚本快速参考》的 awk 实现.doc

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

《SED 单行脚本快速参考》的 awk 实现 《SED 单行脚本快速参考》的 awk 实现 文本间隔: # 在每一行后面增加一空行 sed G awk {printf(%s\n\n,$0)} # 将原来的所有空行删除并在每一行后面增加一空行。 # 这样在输出的文本中每一行后面将有且只有一空行。 sed /^$/d;G awk !/^$/{printf(%s\n\n,$0)} # 在每一行后面增加两行空行 sed G;G awk {printf(%s\n\n\n,$0)} # 将第一个脚本所产生的所有空行删除(即删除所有偶数行) sed n;d awk {f=!f;if(f)print $0} # 在匹配式样“regex”的行之前插入一空行 sed /regex/{x;p;x;} awk {if(/regex/)printf(\n%s\n,$0);else print $0} # 在匹配式样“regex”的行之后插入一空行 sed /regex/G awk {if(/regex/)printf(%s\n\n,$0);else print $0} # 在匹配式样“regex”的行之前和之后各插入一空行 sed /regex/{x;p;x;G;} awk {if(/regex/)printf(\n%s\n\n,$0);else print $0} 编号: # 为文件中的每一行进行编号(简单的左对齐方式)。这里使用了“制表符” # (tab,见本文末尾关于’\t’的用法的描述)而不是空格来对齐边缘。 sed = filename | sed N;s/\n/\t/ awk {i++;printf(%d\t%s\n,i,$0)} # 对文件中的所有行编号(行号在左,文字右端对齐)。 sed = filename | sed N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 / awk {i++;printf(%6d %s\n,i,$0)} # 对文件中的所有行编号,但只显示非空白行的行号。 sed /./= filename | sed /./N; s/\n/ / awk {i++;if(!/^$/)printf(%d %s\n,i,$0);else print} # 计算行数 (模拟 “wc -l”) sed -n $= awk {i++}END{print i} 文本转换和替代: # Unix环境:转换DOS的新行符(CR/LF)为Unix格式。 sed s/.$// # 假设所有行以CR/LF结束 sed s/^M$// # 在bash/tcsh中,将按Ctrl-M改为按Ctrl-V sed s/\x0D$// # ssed、gsed 3.02.80,及更高版本 awk {sub(/\x0D$/,);print $0} # Unix环境:转换Unix的新行符(LF)为DOS格式。 sed s/$/`echo -e [url=]\\\r`/[/url] # 在ksh下所使用的命令 sed s/$/`echo [url=]\\\r`/[/url] # 在bash下所使用的命令 sed s/$/`echo [url=]\\\r`/[/url] # 在zsh下所使用的命令 sed s/$/\r/ # gsed 3.02.80 及更高版本 awk {printf(%s\r\n,$0)} # DOS环境:转换Unix新行符(LF)为DOS格式。 sed s/$// # 方法 1 sed -n p # 方法 2 DOS环境的略过 # DOS环境:转换DOS新行符(CR/LF)为Unix格式。 # 下面的脚本只对UnxUtils sed 4.0.7 及更高版本有效。要识别UnxUtils版本的 # sed可以通过其特有的“–text”选项。你可以使用帮助选项(“–help”)看 # 其中有无一个“–text”项以此来判断所使用的是否是UnxUtils版本。其它DOS # 版本的的sed则无法进行这一转换。但可以用“tr”来实现这一转换。 sed s/\r// infile outfile # UnxUtils sed v4.0.7 或更高版本 tr -d \r infile outfile # GNU tr 1.22 或更高版本 DOS环境的略过 # 将每一行前导的“空白字符”(空格,制表符)删除 # 使之左对齐 s

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档