14.8.gawk的内建函数14.8.1. 字符串函数*sub函数匹配记录中最大、最靠左边的子字符串的正则表达式,并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候。格式如下:sub (regular expression_r, substitution string):sub (regular expression_r, substitution string, target string)实例:gawk.exe "{ sub(/test/, """mytest"""); print }" testfilegawk.exe "{ sub(/test/, """mytest"""); $1}; print }" testfile第一个例子在整个记录中匹配,替换只发生在第一次匹配发生的时候。如要在整个文件中进行匹配需要用到gsub第二个例子在整个记录的第一个域中进行匹配,替换只发生在第一次匹配发生的时候。*gsub函数作用如sub,但它在整个文档中进行匹配。格式如下:gsub (regular expression_r, substitution string)gsub (regular expression_r, substitution string, target string)实例:gawk.exe "{ gsub(/test/, """mytest"""); print }" testfilegawk.exe "{ gsub(/test/, """mytest"""), $1 }; print }" testfile第一个例子在整个文档中匹配test,匹配的都被替换成mytest。第二个例子在整个文档的第一个域中匹配,所有匹配的都被替换成mytest。*index函数返回子字符串第一次被匹配的位置,偏移量从位置1开始。格式如下:index(string, substring)实例:gawk.exe "{ print index("""test""",<wbr style=""><span style=""><span></span>"""mytest""") }" testfile</span><br style=""><span style="">实例返回test在mytest的位置,结果应该是3。</span><br style=""><span style="">*</span><br style=""><span style="">length函数返回记录的字符数。格式如下:</span><br style=""><span style="">length( string )</span><br style=""><span style="">length</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ print length("""test""") }"</span><br style=""><span style="">gawk.exe "{ print length }" testfile</span><br style=""><span style="">第一个实例返回test字符串的长度。</span><br style=""><span style="">第二个实例返回testfile文件中第条记录的字符数。</span><br style=""><span style="">*</span><br style=""><span style="">substr函数返回从位置1开始的子字符串,如果指定长度超过实际长度,就返回整个字符串。格式如下:</span><br style=""><span style="">substr( string, starting position )</span><br style=""><span style="">substr( string, starting position, length of string )</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ print substr( """hello world""", 7,11 ) }"</span><br style=""><span style="">上例截取了world子字符串。</span><br style=""><span style="">*</span><br style=""><span style="">match函数返回在字符串中正则表达式位置的索引,如果找不到指定的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置,RLENGTH为到子字符串末尾的字符个数。substr可利于这些变量来截取字符串。函数格式如下:</span><br style=""><span style="">match( string, regular expression_r )</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{start=match("""this is a test""",/[a-z]+$/); print start}"</span><br style=""><span style="">gawk.exe "{start=match("""this is a test""",/[a-z]+$/); print start, RSTART, RLENGTH }"</span><br style=""><span style="">第一个实例打印以连续小写字符结尾的开始位置,这里是11。</span><br style=""><span style="">第二个实例还打印RSTART和RLENGTH变量,这里是11(start),11(RSTART),4(RLENGTH)。</span><br style=""><span style="">*</span><br style=""><span style="">toupper和tolower函数可用于字符串大小间的转换,该功能只在gawk中有效。格式如下:</span><br style=""><span style="">toupper( string )</span><br style=""><span style="">tolower( string )</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ print toupper("""test"""), tolower("""TEST""") }"</span><br style=""><span style="">*</span><br style=""><span style="">split函数可按给定的分隔符把字符串分割为一个数组。如果分隔符没提供,则按当前FS值进行分割。格式如下:</span><br style=""><span style="">split( string, array, field separator )</span><br style=""><span style="">split( string, array )</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ split("""20:18:00""", time, """:""" ); print time[2] }"</span><br style=""><span style="">上例把时间按冒号分割到time数组内,并显示第二个数组元素18。</span><br style=""><span style="">14.8.2. 时间函数</span><br style=""><span style="">*</span><br style=""><span style="">systime函数返回从1970年1月1日开始到当前时间(不计闰年)的整秒数。格式如下:</span><br style=""><span style="">systime()</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ now = systime(); print now }"</span><br style=""><span style="">*</span><br style=""><span style="">strftime函数使用C库中的strftime函数格式化时间。格式如下:</span><br style=""><span style="">systime( [format specification][,timestamp] )</span><br style=""><span style="">Table 3. 日期和时间格式说明符</span><br style=""><span style="">格式 描述</span><br style=""><span style="">%a 星期几的缩写(Sun)</span><br style=""><span style="">%A 星期几的完整写法(Sunday)</span><br style=""><span style="">%b 月名的缩写(Oct)</span><br style=""><span style="">%B 月名的完整写法(October)</span><br style=""><span style="">%c 本地日期和时间</span><br style=""><span style="">%d 十进制日期</span><br style=""><span style="">%D 日期 08/20/99</span><br style=""><span style="">%e 日期,如果只有一位会补上一个空格</span><br style=""><span style="">%H 用十进制表示24小时格式的小时</span><br style=""><span style="">%I 用十进制表示12小时格式的小时</span><br style=""><span style="">%j 从1月1日起一年中的第几天</span><br style=""><span style="">%m 十进制表示的月份</span><br style=""><span style="">%M 十进制表示的分钟</span><br style=""><span style="">%p 12小时表示法(AM/PM)</span><br style=""><span style="">%S 十进制表示的秒</span><br style=""><span style="">%U 十进制表示的一年中的第几个星期(星期天作为一个星期的开始)</span><br style=""><span style="">%w 十进制表示的星期几(星期天是0)</span><br style=""><span style="">%W 十进制表示的一年中的第几个星期(星期一作为一个星期的开始)</span><br style=""><span style="">%x 重新设置本地日期(08/20/99)</span><br style=""><span style="">%X 重新设置本地时间(12:00:00)</span><br style=""><span style="">%y 两位数字表示的年(99)</span><br style=""><span style="">%Y 当前月份</span><br style=""><span style="">%Z 时区(PDT)</span><br style=""><span style="">%% 百分号(%)</span><br style=""><span style="">实例:</span><br style=""><span style="">gawk.exe "{ now=strftime("""%D""", systime() ); print now }"</span><br style=""><span style="">gawk.exe "{ now=strftime("""%m/%d/%y"""); print now }"</span><br style=""><span style="">14.8.3. 内建数学函数</span><br style=""><span style="">Table 4.</span><br style=""><span style="">函数名称 返回值</span><br style=""><span style="">atan2(x,y) y,x范围内的余切</span><br style=""><span style="">cos(x) 余弦函数</span><br style=""><span style="">exp(x) 求幂</span><br style=""><span style="">int(x) 取整</span><br style=""><span style="">log(x) 自然对数</span><br style=""><span style="">rand() 随机数</span><br style=""><span style="">sin(x) 正弦</span><br style=""><span style="">sqrt(x) 平方根</span><br style=""><span style="">srand(x) x是rand()函数的种子</span><br style=""><span style="">int(x) 取整,过程没有舍入</span><br style=""><span style="">rand() 产生一个大于等于0而小于1的随机数</span><br style=""><span style="">14.8.4. 自定义函数</span><br style=""><span style="">在awk中还可自定义函数,格式如下:</span><br style=""><span style="">function name ( parameter, parameter, parameter, ... ) {</span><br style=""><span style="">statements</span><br style=""><span style="">return expression_r # the return statement and expression_r are optional</span><br style=""><span style="">}</span><br style=""><span style="">15. How-to</span><br style=""><span style="">*</span><br style=""><span style="">如何把一行竖排的数据转换成横排?</span><br style=""><span style="">gawk.exe "{printf("""%s,""",$1)}" filename</span>
</wbr>
分享到:
相关推荐
gawk 是 GNU 的 awk,具有很强的文本处理功能,简洁优美. awk 是一个程式语言,对于文本处理具有很强的功能。对於文字档里的资料做修改、比对、抽取等的处理,awk 能够以很短的程式 轻易地完成。 awk 能够依照使用...
可以在windows环境下使用的awk,最新版本4.2.1。 解压zip文件,把解压后文件夹下面的bin目录添加到系统环境变量里面。
gawk windows版本的gawk 一个功能强大的文本编辑器
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 ...
可以在windows系统中使用linux中的awk命令。具体使用方法请参照linux版本的awk使用方法。 可以在windows系统中使用linux中的awk命令。具体使用方法请参照linux版本的awk使用方法
gawk-3.1.6-1-bin windows的awk 最新版,安装后可在windows操作系统上像在linux上使用awk命令。
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
windows上跑的awk,把zip文件解压,然后把bin目录加到环境变量里面,亲测有效
Generic Mapping Tools,地球科学常用制图软件。
处理文本文件时,会重复出现多种任务。 您可能想要提取某些行并丢弃其余行。 或者,您可能需要在出现某些特定模式... 这意味着所有正确编写的 awk 程序都应该使用 gawk。 因此,我们通常不区分 gawk 和其他 awk 实现。
部分工具独立编译,如file、lspci、nano、vim、gawk、aria2c、wget等,部分工具采用busybox内置命令,如ls、bash、clear、dos2unix、unix2dos等,部分工具采用第三方软件或windows系统命令用批处理文件模拟,如...
windows下的uniq,很好用的小东西,配合Gawk使用更佳。
包含命令:awk、cat、cut、diff、echo、gawk、grep、head、sed、sort、tac、tail、tr、uniq、wc 可以在windows上cmd窗口显示彩色文字,用法:echo.exe -e "\033[32;1mGREEN\033[0m
awk for Windows 2021年4月最新版
常用unix工具的windows编译版。包内为许多独立exe文件,没有dll依赖,无需安装。 文件列表:ansi2knr.exe(以下省略.exe扩展名),basename,bc,bison,bjam,bunzip2,bzip2,bzip2recover,cat,chgrp,chmod,chown,cksum,...
在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行...
除开 GCC (GNU 编译器集合) 以外,MinGW 还包含有一些其他的 GNU 程序开发工具 (比如 gawk bison 等等)。 开发 MinGW 是为了那些不喜欢工作在 Linux(FreeBSD) 操作系统而留在 Windows 的人提供一套符合 GNU 的 GNU ...
使用方法,解压到本地目录,配置path,即可在dos下使用linux命令。 windows下能直接执行的linux命令,基本包括日常所有,如:[.exe grolbp.exe regtool.exe a2p.exe grolj4.exe rm.exe a2p5.10.0.exe grops.exe ...
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。 实际上 MinGW 并不是一个 单纯的C/C++ 编译器,而是一套 GNU 工具集合。除...
Gawk for Windows -------------------------------------------------------------------------------- Gawk: pattern scanning and processing language Version 3.1.6 Description Several kinds of tasks ...