AWK使用实例

有这么些记录,大概2000W条:

1909290281,aa,aa,,&aa.,aa,1909290281,11,13,8,,,tp2.sinaimg.cn/1909290281/50/0/1,0,,"2632861870,1728104535,1894638220,1774978073,1839047245,2033895032,1769871333,1909308537,1909363617"

由于导入hive后是根据逗号进行字段分割的,而双引号内的数据不应该给分割,因此需要对双引号内的逗号进行替换。

使用AWK脚本为:

BEGIN{
  print "start weibo analyse!"
  FS="\""
}
{
  result=""
  for(i=1;i<NF;i++){
    if( i%2 == 0 ){
      gsub(",",";",$i)
      result=result"\""$i"\""
    }else{
      result=result$i
    }

  }
  print result
}
EDN{
  print "end weibo analyse!"
}

这样能正确处理数据,但是效率太差。

原文地址:https://www.cnblogs.com/frady/p/2760381.html