+ -
当前位置:首页 → 问答吧 → 关于LINUX下面AWK的正则表达式,求解答,在线等

关于LINUX下面AWK的正则表达式,求解答,在线等

时间:2011-08-02

来源:互联网

awk 'BEGIN {FS=","; OFS=","; chk_part = "xxxxxxxxxx"}
  {
  split($0, item, ",");
  if ((item[2] !~ /\"[0-9]{4}\"/) && (item[1] !~ "^" chk_part)){
  chk_part = substr(item[1],1,11);
  }
  if ((item[2] ~ /\"[0-9]{4}\"/) && (item[1] !~ "^" chk_part)){
  print $0
  }
  } ' $FILE_TMP > $FILE_RSLT_N180_U05
上面的这段程序,(item[1] !~ "^" chk_part)是什么意思?

作者: TopFelix   发布时间: 2011-08-02

如果item[1]的内容不是以chk_part开头则为真。

我也不确定哦。等待大神解答。。。。。

作者: awsqsh   发布时间: 2011-08-02

!~表示与后面的正则表达式不匹配
"^" chk_part应该就是以chk_part开头吧

作者: louyong0571   发布时间: 2011-08-02

同意上面2位

作者: threeleafzerg007   发布时间: 2011-08-02

item是以逗号“,”分隔的一个数组,item[1]很明显是表示的数组的第一个元素(awk里的array下标从1开始)
chk_part 是begin里定义的字符串 "xxxxxxxxxx"

作者: joan8363   发布时间: 2011-08-02