Welcome 微信登录

首页 / 操作系统 / Linux / Linux awk的内建函数

awk的内建函数1. 字符串函数sub函数匹配记录中最大、最靠左边的子字符串的正则表达式,并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候。格式如下:            sub (regular expression, substitution string):            sub (regular expression, substitution string, target string) 实例:            $ awk "{ sub(/test/, "mytest"); print }" testfile            $ awk "{ sub(/test/, "mytest"); $1}; print }" testfile 第一个例子在整个记录中匹配,替换只发生在第一次匹配发生的时候。如要在整个文件中进行匹配需要用到gsub第二个例子在整个记录的第一个域中进行匹配,替换只发生在第一次匹配发生的时候。gsub函数作用如sub,但它在整个文档中进行匹配。格式如下:            gsub (regular expression, substitution string)            gsub (regular expression, substitution string, target string) 实例:            $ awk "{ gsub(/test/, "mytest"); print }" testfile            $ awk "{ gsub(/test/, "mytest"), $1 }; print }" testfile 第一个例子在整个文档中匹配test,匹配的都被替换成mytest。第二个例子在整个文档的第一个域中匹配,所有匹配的都被替换成mytest。 index函数返回子字符串第一次被匹配的位置,偏移量从位置1开始。格式如下:          index(string, substring) 实例:$ awk "{ print index("test", "mytest") }" testfile 实例返回test在mytest的位置,结果应该是3。 length函数返回记录的字符数。格式如下:            length( string )            length 实例:            $ awk "{ print length( "test" ) }"             $ awk "{ print length }" testfile 第一个实例返回test字符串的长度。第二个实例返回testfile文件中第条记录的字符数。 substr函数返回从位置1开始的子字符串,如果指定长度超过实际长度,就返回整个字符串。格式如下:            substr( string, starting position )            substr( string, starting position, length of string ) 实例:            $ awk "{ print substr( "hello world", 7,11 ) }"  上例截取了world子字符串。 match函数返回在字符串中正则表达式位置的索引,如果找不到指定的正则表达式则返回0。match函数会设置内建变量RSTART为字符串中子字符串的开始位置,RLENGTH为到子字符串末尾的字符个数。substr可利于这些变量来截取字符串。函数格式如下:            match( string, regular expression ) 实例:$ awk "{start=match("this is a test",/[a-z]+$/); print start}"$ awk "{start=match("this is a test",/[a-z]+$/); print start, RSTART, RLENGTH }" 第一个实例打印以连续小写字符结尾的开始位置,这里是11。第二个实例还打印RSTART和RLENGTH变量,这里是11(start),11(RSTART),4(RLENGTH)。 toupper和tolower函数可用于字符串大小间的转换,该功能只在gawk中有效。格式如下:            toupper( string )            tolower( string ) 实例:$ awk "{ print toupper("test"), tolower("TEST") }"  split函数可按给定的分隔符把字符串分割为一个数组。如果分隔符没提供,则按当前FS值进行分割。格式如下:            split( string, array, field separator )            split( string, array ) 实例:            $ awk "{ split( "20:18:00", time, ":" ); print time[2] }" 上例把时间按冒号分割到time数组内,并显示第二个数组元素18。 2. 时间函数systime函数返回从1970年1月1日开始到当前时间(不计闰年)的整秒数。格式如下:systime() 实例:$ awk "{ now = systime(); print now }"  strftime函数使用C库中的strftime函数格式化时间。格式如下:systime( [format specification][,timestamp] )  实例:            $ awk "{ now=strftime( "%D", systime() ); print now }"            $ awk "{ now=strftime("%m/%d/%y"); print now }"  mktime:        mktime("年  月  日  时  分  秒") 返回指定时间与1970-1-1 00:00:00 之间相差的秒数        echo "" | awk "BEGIN{print strftime("%Y-%m-%d %T",mktime("2011 01 01 13 00 00")+60)}"Unix find 命令详解Linux awk 常量变量含义相关资讯      Linux函数 
  • Linux C语言中gotoxy函数  (04月11日)
  • Linux进程之Fork函数  (04/16/2015 08:48:35)
  • Linux中getrusage的使用  (11/08/2014 07:07:38)
  • Linux内核中min和max的实现  (03月03日)
  • Linux下mmap函数的一个练习  (01/19/2015 21:11:21)
  • Linux下confstr与uname函数_获取C  (10/28/2014 20:23:36)
本文评论 查看全部评论 (0)
表情: 姓名: 字数