awk单行脚本快速参考实例教程.pdfVIP

  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文档。上传文档
查看更多
awk单行脚本快速参考实例教程

用法: Unix: awk /pattern/ {print $1} # 标准 Unix shell 环境 DOS/Win: awk /pattern/ {print $1} # DJGPP 可编译通过 awk /pattern/ {print $1} # GnuWin32 ,UnxUtils,Mingw 环境 需要特别注意的是,DJGPP 编译器可以允许awk 脚本使用Unix 的引号语法 /like/ {this}。但是,用户必须知道在DOS/Windows 环境下,使用CMD.EXE 或者 COMMAND.COM 程序的话,单引号并不能保护重定向符号(, )和管道(|)。 如果使用双引号的话,在DOS/CMD 命令解释器下的特殊符号和他们的特殊含义都 会被忽略。如果你的命令提示符是bash、ksh 或者其他的Unix 终端,单引号和双引号 会沿用Unix 标准的用法。 同样,DOS/Win 用户必须记住用,百分号(% )用来标记DOS/Win 环境变量, 如果想要在awk 使用的话,需要使用双百分号(%% )来表示一个百分号% 。 如果我能确定一个脚本不需要被指出是使用在Unix, DOS 或者CMD 环境下,我通常 会省略引号。如果一个例子是GNU awk 所特有的,将会用 gawk命令来代替。如 果你发现错误或者新的命令想要添加到这个列表里(总长度控制在65 个字符一下) ,请通知我。首先我经常会尝试去写一个最短字符的脚本。为了省空间,我通常使用 1来代替{print}去打印每行,两种写法都能正确运行。 文本间隔: # 每行后面增加一行空行 awk 1;{print } awk BEGIN{ORS=nn};1 # 每行后面增加一行空行。输出文件不会包含连续的两个或两个以上的空行 # 注意:在Unix 系统, DOS 行包括的 CRLF (rn) 通常会被作为非空行对待 # 因此 NF 将会返回TRUE 。 awk NF{print $0 n} # 每行后面增加两行空行 awk 1;{print n} 编号和计算: # 以文件为单位,在每句行前加上编号 (左对齐) # 使用制表符 (t ) 来代替空格可以有效保护页变的空白。 awk {print FNR t $0} files* # 用制表符 (t ) 给所有文件加上连贯的编号。 awk {print NR t $0} files* # 以文件为单位,在每句行前加上编号 (编号在左,右对齐) # 如果在DOS 环境下,需要写两个% awk {printf(] : %sn, NR,$0)} # 给非空白行的行加上编号 # 记得Unix 对于 r 的处理的特殊之处。(上面已经提到) awk NF{$0=++a : $0};{print} awk {print (NF? ++a : :) $0} # 计算行数 (模拟wc -l) awk END{print NR} # 计算每行每个区域之和 awk {s=0; for (i=1; i=NF; i++) s=s+$i; print s} # 计算所有行所有区域的总和 awk {for (i=1; i=NF; i++) s=s+$i}; END{print s} # 打印每行每区域的绝对值 awk {for (i=1; i=NF; i++) if ($i 0) $i = -$i; print } awk {for (i=1; i=NF; i++) $i = ($i 0) ? -$i : $i; print } # 计算所有行所有区域(词)的个数 awk { total = total + NF }; END {print total} file # 打印包含 Beth 的行数 awk /Beth/{n++}; END {print n+0} file # 打印第一列最大的行 # 并且在行前打印出这个最大的数 awk $1 max {max=$1; maxline=$0}; END{ print max, maxline} # 打印每行的列数,并在后面跟上此行内容 awk { print NF : $0 } # 打印每行的最后一列 awk { print $NF } # 打印最后一行的最后一列 awk { field = $NF }; END{ print field } # 打印列数超过4 的行 awk NF 4 # 打印最后一列大于4 的行 awk $NF 4 构建字符

文档评论(0)

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

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

1亿VIP精品文档

相关文档