码迷,mamicode.com
首页 > 其他好文 > 详细

awk常用函数用法

时间:2015-07-08 22:52:05      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:awk gsub sub split substr

length函数返回字符串的长度

# echo "xiaoming235" | awk ‘{print length}‘
11
# awk -F ":" ‘length($NF)>13 {print $0}‘ /etc/passwd
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


gsub使得在所有正则表达式被匹配的时候都发生替换

0001|20081223efskjfdj|EREADFASDLKJCV
0002|20081208djfksdaa|JDKFJALSDJFsddf
0003|20081208efskjfdj|EREADFASDLKJCV
0004|20081211djfksdaa1234|JDKFJALSDJFsddf
以‘|‘为分隔, 现要将第二个域字母前的数字去掉,其他地方都不变,
cat data.test | awk -F "|" ‘gsub(/[0-9]+/,"",$2)‘ | sed ‘s@ @|@‘g
cat data.test | awk -F "|" ‘BEGIN{ OFS="|"} {gsub(/[0-9]+/,"",$2);print $0}‘

sub匹配第一次出现的符合模式的字符串,相当于 sed ‘s//‘ 。

gsub匹配所有的符合模式的字符串,相当于 sed ‘s//g‘ 。


split函数把一个字符串分割为段保存到数组当中

split(string,array_name,filed separator)
# echo "11:22:33" | awk ‘{split($0,a,":");{printf("%d\n%d\n%d\n", a[1],a[2],a[3])}}‘
11
22
33


计算2013年一月每人工资数
Tom
    2012-12-11          5       3000
John    2013-01-13          4       1000
vivi    2013-01-18           4       2800
Tom     2013-01-20           3       2500
John    2013-01-28         6       3500
awk ‘{split($2,a,"-");if(a[2]==01){b[$1]+=$NF}}END{for(A in b){print A,b[A]}}‘ test.t



substr截取字符串

substr(s,p)字符串s中从p开始的部分

substr(s,p,n)字符串s中p开始且p后长度为n的部分

# echo "xiaoming235" | awk ‘{print substr($0,3,2)}‘
ao
# echo "xiaoming235" | awk ‘{print substr($0,3)}‘
aoming235


本文出自 “在路上” 博客,请务必保留此出处http://mingxiao.blog.51cto.com/8124243/1672108

awk常用函数用法

标签:awk gsub sub split substr

原文地址:http://mingxiao.blog.51cto.com/8124243/1672108

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!