但行好事,莫问前程

awk

awk认知

awk 执行模式

所需文件:
文件图
1.pattern { action }

$3 == 0 { print $1 }
//awk '$3 >0 { print $1, $2 * $3 }' emp.data
//awk '$3 == 0 { print $1 }' file1 file2

基础输出print,字段数量NF,行号NR

{ print "total pay for", $1, "is", $2 * $3 }
// awk '{ print  NR,"name ",$1,"salary ",$2*$3,"字段数量",NF}' emp.data

逻辑运算

NF != 3     { print $0, "number of fields is not equal to 3" }
$2 < 3.35   { print $0, "rate is below minimum wage" }
$2 > 10     { print $0, "rate exceeds $10 per hour" }
$3 < 0      { print $0, "negative hours worked" }
$3 > 60     { print $0, "too many hours worked" }

BEGIN与END

 awk 'BEGIN{print "Name","path","hours"} 
 {	print $1,$2,$3}
 END{	{print "total is",pay}{print "average is",pay/NR}}' emp.data

变量应用

 awk '{ nc = nc + length($0) + 1
      nw = nw + NF
    }
END { print NR, "lines,", nw, "words,", nc, "characters" }'

ifelse while for array

awk '
{
   nc = nc + length($0) + 1
   nw = nw + NF
   arr[1]="hello the world";
}
{
  for(i=1;i<5;i++)
  {
    {print "now i is" ,i}
    {
      if(i>3){print "my name is zylg"}
      else {print "hello zylg"}
    }
    while(1)
    {
      {print "exit"}
      break;
    } 
    {
      print arr[1]
    } 
  }
}
END { print NR, "lines,", nw, "words,", nc, "characters" }' ~/removesoft

posted @ 2018-09-16 14:44  专业路过  阅读(124)  评论(0)    收藏  举报