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
原文地址:http://mingxiao.blog.51cto.com/8124243/1672108