文本处理语言awk在线实例极速入门 全三部分.docx

文本处理语言awk在线实例极速入门 全三部分.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
 HYPERLINK /thread-246781-1-1.html 文本处理语言awk在线实例极速入门 (全三部分) ?  HYPERLINK /thread-246781-1-1.html [复制链接]    HYPERLINK /space-uid-727862.html \t _blank ruby-python 电梯直达  HYPERLINK /thread-246781-1-1.html 1楼 发表于 2008-10-14 09:39 |  HYPERLINK /forum.php?mod=viewthreadtid=246781page=1authorid=727862 只看该作者 awk在线实例入门教程 第一部分 ———一种名称很奇特的优秀语言介绍 Awk 是一种名称奇怪但功能强大的语言。本系列文章是一个包含三部分(分别发布至本帖1#, 2#, 3#楼)。本文将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真实的高级 awk 应用程序。 捍卫 awk 在这一系列的文章中,我将使您成为精通 awk 的编程人员。我承认,awk 并没有一个非常好听且又非常 “时髦” 的名字。awk 的 GNU 版本(叫作 gawk)听起来非常怪异。那些不熟悉这种语言的人可能听说过 awk,而且可能认为它是一组落伍且过时的混乱代码。它甚至会使最博学的 UNIX 权威陷于混乱的边缘(使他不断地发出 kill -9! 命令,就象使用咖啡机一样)。 的确,awk 没有一个动听的名字。但它是一种很棒的语言。awk 适合于文本处理和报表生成,它还有许多精心设计的特性,允许进行多种方式的编程。与某些语言不同,awk 的语法较为常见。它借鉴了某些语言的一些精华部分,如 C 语言、python 和 bash(虽然在技术上,awk 比 python 和 bash 早创建)。awk 是一种一旦学会就会成为您战略代码库的重要部分的语言。 第一个 Awk 您应该会看到 /ect/passwd 文件中的内容,本文使用该文件来解释 awk 的工作原理。当调用 awk 时,我们指定 /etc/passwd 作为输入文件。Awk 在执行期间对 /etc/passwd 文件中的每一行依次执行 print 命令。所有输出都发送到 stdout,可以得到类似 cat 命令的结果。 现在解释代码块 { print }。在 Awk 中,花括号用于将代码分块,这与 C 语言类似。我们的??码块中只有一条 print 命令。在 Awk 中,当 print 命令单独出现时,将打印当前行的全部内容。 $ awk { print $0 } /etc/passwd 复制代码 在 Awk 中,变量 $0 表示整个当前行,因此 print 和 print $0 的作用完全相同。 $ awk { print } /etc/passwd 复制代码 $ awk { print hiya } /etc/passwd 复制代码 运行该脚本,屏幕上讲显示多行。 多个字段 print $1 $ awk -F: { print $1 $3 } /etc/passwd 复制代码 halt7 operator11 root0 shutdown6 sync5 bin1 etc. print $1 $3 $ awk -F: { print $1 $3 } /etc/passwd 复制代码 $1 $3 $ awk -F: { print username: $1 \t\tuid: $3 } /etc/passwd 复制代码 username: halt? ?? ?? ? uid:7 username: operator? ?? ?uid:11 username: root? ?? ?? ? uid:0 username: shutdown? ?? ?uid:6 username: sync? ?? ?? ? uid:5 username: bin? ?? ?? ???uid:1 etc. 外部脚本 BEGIN { ? ?? ???FS=: } { print $1 } 复制代码 两 种方法的区别在于如何设置字段分隔符。在该脚本中,(通过设置 FS 变量)在代码中指定字段分隔符,而前一示例通过在命令行向 awk 传递 -F: 选项来设置 FS。一般而言,最好在脚本内部设置字段分隔符,因为这样可以少输入一个命令行参数。本文稍后将深入讲解 FS 变量。 BEGIN 与 END 代码块 通常,awk 会针对每个输入行执行一次每个代码块。但是,在许多编程情形下,可能需要在 awk 开始处理输入文件的

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档