首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

awk编程根本使用示例

2012-09-21 
awk编程基本使用示例对于每一行,如果第三列大于0,则打印第一列,第二列*第三列的值awk `$30 {print $1,$2*

awk编程基本使用示例

对于每一行,如果第三列大于0,则打印第一列,第二列*第三列的值awk `$3>0 {print $1,$2*$3}` file1 file2-f指定执行程序的文件awk -f programfile inputfile  打印整行输入awk `{print}` 或者 awk `{print $0}`NR当前行数,NF当前行的列数,下面这个 是打印当前行的列数,第一列和最后一列awk `{print NR, NF, $1, $NF}`格式化输出,跟c语言格式化类似awk `printf("%-8s %.2f", $1,$2*$3)`排序awk `$3>0 {print $1,$2*$3}` file1 file2 | sort计算后再选择awk `$3 * $2>50 {print $1,$2*$3}` file1 file2awk `$1=="suite" {print $1,$2*$3}` file1 file2awk `!($NF>5 || $NF < 2)" {print $1,$2*$3}` file1 file2 BEGIN 和 END BEGIN在处理输入前先执行BEGIN语句块awk `BEGIN{print " name  rate number:"}{print}`统计第三列大于50的总数,在处理完输入之后最后输入第三列大于50的总数awk `$3>50{$emp=$emp+1} END{print $emp}`字符串拼接awk `{$name=$name $1 " "} END {print $name}`内置函数lengthawk `{print $1, length($1)}`if-elseawk `$2>10{$n=$n+1,$pay=$2*3} END{if($n>0) print n else print "no"}`while语句awk `i=1 while(i<$3){printf("%s",$3) i=i+1}`forawk `{for(i=1;i<$3;i=i+1)printf("%s",$3)}`arrays逆序打印awk `{line[NR]=$0} END {i=NR while(i>0){print line[i] i=i-1}}`字段分隔符awk `BEGIN{FS="\t"}{printf("$s %s",$1,$2) $cnt=$cnt+$2}END{print $cnt}`正则匹配$2包含字符串asiaawk `$2  ~ /asia/ print $3`$2没有包含字符串asiaawk `$2  !~ /asia/ print $3`内置变量FNR 需要读入的行数 FILENAME 读入的文件名赋值到字段中awk `BEGIN{FS=OFS="\t"} $2=="aaa" {$4="bbb"} $2=="ccc" {$4="ddd"}{print}`内置数学函数atan2(y,x) cos(x) exp(x) int(x) log(x) rand(x) sin(x) sqrt(x) srand(x)string内置函数gsub(r,s) gsub(r,s,t) index(s,t) length(s) match(s,r) split(s,a) split(s,a,fs) sprinf() sub(r,s) substr(s,p)do statement while(expr)break continuenext exitdelete函数for(i in pop)  delete pop[i]多维数组pop[i,j]if((i,j) in arr) ...

热点排行