`
chinamming
  • 浏览: 151179 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Windows上GAWK的使用(四)

 
阅读更多

<wbr>14.5. 条件语句<br> gawk中的条件语句是从C语言中借鉴过来的,可控制程序的流程。<br> 14.5.1. if语句<br> 格式:<br> {if (expression_r){<br> statement; statement; ...<br> }<br> }<br> gawk.exe "{if ($1 &lt;$2) print $2 """too high"""}" test.txt。如果第一个域小于第二个域则打印。<br> gawk.exe "{if ($1 &lt; $2) {count++; print """ok"""}}" test.txt.如果第一个域小于第二个域,则count加一,并打印ok。<br> 14.5.2. if/else语句,用于双重判断。<br> 格式:<br> {if (expression_r){<br> statement; statement; ...<br> }<br> else{<br> statement; statement; ...<br> }<br> }<br> gawk.exe "{if ($1 &gt; 100) print $1 """bad""" ; else print """ok"""}" test.txt。如果$1大于100则打印$1 bad,否则打印ok。<br> gawk.exe "{if ($1 &gt; 100){ count++; print $1} else {count--; print $2}" test.txt。如果$1大于100,则count加一,并打印$1,否则count减一,并打印$1。<br> 14.5.3. if/else else if语句,用于多重判断。<br> 格式:<br> {if (expression_r){<br> statement; statement; ...<br> }<br> else if (expression_r){<br> statement; statement; ...<br> }<br> else if (expression_r){<br> statement; statement; ...<br> }<br> else {<br> statement; statement; ...<br> }<br> }<br> 14.6. 循环<br> *<br> gawk有三种循环:while循环;for循环;special for循环。<br> *<br> gawk.exe "{ i = 1; while ( i &lt;= NF ) { print NF,$i; i++}}" test.txt。变量的初始值为1,若i小于可等于NF(记录中域的个数),则执行打印语句,且i增加1。直到i的值大于NF.<br> *<br> gawk.exe "{for (i = 1; i *<br> breadkcontinue语句。break用于在满足条件的情况下跳出循环;continue用于在满足条件的情况下忽略后面的语句,直接返回循环的顶端。如:<br> {for ( x=3; x&lt;=NF; x++)<br> if ($x&lt;0){print "Bottomed out!"; break}}<br> {for ( x=3; x&lt;=NF; x++)<br> if ($x==0){print "Get next item"; continue}}</wbr>

*
next语句从输入文件中读取一行,然后从头开始执行awk脚本。如:
{if ($1 ~/test.txt/){next}
else {print}
}

*
exit语句用于结束awk程序,但不会略过END块。退出状态为0代表成功,非零值表示出错。
14.7. 数组
awk中的数组的下标可以是数字和字母,称为关联数组。
14.7.1. 下标与关联数组
*
用变量作为数组下标。如:gawk.exe {name[x++]=$2};END{for(i=0;i *
special for循环用于读取关联数组中的元素。格式如下:
{for (item in arrayname){
print arrayname[item]
}
}
gawk.exe "/^tom/{name[NR]=$1}; END{for(i in name){print name[i]}}" test.txt。打印有值的数组元素。打印的顺序是随机的。
*
用字符串作为下标。如:count["test.txt"]
*
用域值作为数组的下标。一种新的for循环方式,for (index_value in array) statement。如:gawk.exe "{count[$1]++} END{for(name in count) print name,count[name]}" test.txt。该语句将打印$1中字符串出现的次数。它首先以第一个域作数组count的下标,第一个域变化,索引就变化。
*
delete 函数用于删除数组元素。如:gawk.exe "{line[x++]=$1} END{for(x in line) delete(line[x])}" test.txt。分配给数组line的是第一个域的值,所有记录处理完成后,special for循环将删除每一个元素。

分享到:
评论

相关推荐

    GawkforWindows4.1forWindows附Gawk使用方法

    gawk 是 GNU 的 awk,具有很强的文本处理功能,简洁优美. awk 是一个程式语言,对于文本处理具有很强的功能。对於文字档里的资料做修改、比对、抽取等的处理,awk 能够以很短的程式 轻易地完成。 awk 能够依照使用...

    windows环境下GAWK version-4.2.1

    在Windows环境下使用`GAWK version 4.2.1`,用户可以享受到与Unix/Linux系统相同的文本处理能力,这对于Windows开发者和系统管理员来说是一个非常有用的工具。 `awk`的基本原理是基于模式匹配和动作执行。它可以在...

    gawk windows版本的gawk 一个功能强大的文本编辑器

    然而,它同样可以在Windows系统上运行,通过提供的Windows版本——gawk for win,用户可以在Windows环境下享受其丰富的功能。Gawk是AWK编程语言的一个实现,由GNU项目开发,旨在处理和分析文本文件,提取有用的信息...

    gawk-3.1.6-1-bin windows最新版

    在Windows系统上,你可能需要通过命令提示符或者PowerShell来运行`gawk`命令,将`gawk-3.1.6-1-bin`添加到系统路径后,就可以像在Linux下一样方便地调用`gawk`了。 总的来说,`gawk-3.1.6-1-bin`为Windows用户提供...

    Gawk for Windows 3.1.6-1

    Gawk: pattern scanning and processing language Version 3.1.6 Description Several kinds of tasks occur repeatedly when working with text files. You might want to extract certain lines and discard ...

    gawk使用手册

    在Cygwin环境下,gawk与Linux系统中的行为基本一致,但在处理路径和文件名时需要注意Windows和Unix风格的区别。 总的来说,《gawk使用手册》会涵盖以上所有内容,并提供实例来解释每个概念。通过深入学习,你将能够...

    gawk 3.1.6-1 windows中的awk

    可以在windows系统中使用linux中的awk命令。具体使用方法请参照linux版本的awk使用方法。 可以在windows系统中使用linux中的awk命令。具体使用方法请参照linux版本的awk使用方法

    gawk-5.0.1-w32.zip

    本文将详细介绍如何在Windows上安装和使用Gawk 5.0.1版本,以及如何将Gawk集成到系统环境变量中。 首先,我们提到的"**gawk-5.0.1-w32.zip**"是一个专门为Windows系统编译的Gawk版本,版本号为5.0.1。这个压缩包...

    gawk_4.1.zip

    gawk for windows 运行环境

    GAWK:Effective AWK Programming Edition 4.2

    1.GAWK:Effective AWK Programming_Edition 4.2.dvi 2.GAWK:Effective AWK Programming_Edition 4.2.html 3.GAWK:Effective AWK Programming_Edition 4.2.pdf 4.GAWK:Effective AWK Programming_Edition 4.2.txt

    Gawk for Windows:适用于 Windows 32 位的 GNU Awk 4.0.0-开源

    处理文本文件时,会重复出现多种任务。 您可能想要提取某些行并丢弃其余行。 或者,您可能需要在出现某些特定模式... 这意味着所有正确编写的 awk 程序都应该使用 gawk。 因此,我们通常不区分 gawk 和其他 awk 实现。

    awk源码及windows下64位和32位编译说明

    当在Windows上编译awk源码时,我们需要以下准备工作: 1. 获取awk源码:通常可以从GNU Awk (gawk)官方网站下载最新版本的源代码,例如`gawk-5.x.x.tar.gz`。 2. 安装编译环境:对于32位系统,你需要安装MinGW...

    gawk_5.1.zip

    gawk for windows 运行环境

    gmt安装包(gmt 6.0.0-win64;gawk-3.1.6-1;gs921w64;gsv50w64)

    其中,gawk-3.1.6-1是GNU Awk的版本,这是一个文本处理工具,经常与GMT结合使用,帮助解析和操作GMT生成的地图配置文件或数据文件。gs921w64可能是指Ghostscript的9.21版Windows 64位版本,它是GMT用来处理Post...

    GAWK入门.doc

    GAWK 是 GNU 项目对 AWK 的开源实现,支持多种操作系统,包括 UNIX、Mac OS X 和 Windows。由于其兼容 POSIX 标准,GAWK 可以在不同平台上提供一致的行为。 在 GAWK 中,程序通常是数据驱动的,通过模式匹配和操作...

    gawk-5.1.0-w32-bin.zip

    总结一下,GAWK 5.1.0 for Windows是一个强大而易用的文本处理工具,适用于批处理任务,通过提供的lib、share、bin和include目录,用户可以在Windows环境下便捷地使用和扩展其功能。无论你是初学者还是经验丰富的...

    GAWK入门.pdf

    GAWK是GNU项目对AWK语言的开源实现,兼容1992年的POSIX标准,因此它可以在各种操作系统上运行,包括UNIX、Mac OS X和Windows。GAWK不仅支持原始AWK和NAWK的特性,还不断更新以增加新功能。这意味着你可以在不同平台...

    GAWK入门.docx

    GNU AWK (GAWK) 是开源的AWK实现,适用于所有UNIX系统,同时也在其他操作系统如Mac OS X和Microsoft Windows上可用。GAWK不仅包含了原始AWK的功能,还引入了NAWK(New AWK)的增强特性,如新的内置函数、变量、特殊...

    windows下的uniq

    这里提到的"windows下的uniq"实际上可能是指一个名为UNIQUE.exe的程序,它用于处理数据,去除重复行,与Gawk(GNU Awk)配合工作,提供数据分析中的去重能力。 `uniq`命令在Unix/Linux中是一个非常常见的文本处理...

    GAWK入门[参照].pdf

    1. **跨平台**:GAWK可以在各种主要的UNIX平台和其他操作系统上运行,包括Windows和Mac OS X。 2. **POSIX兼容**:GAWK遵循POSIX标准,确保了其在不同系统上的一致性。 3. **无内存限制**:GAWK没有预定义的内存限制...

Global site tag (gtag.js) - Google Analytics