使用AWK进行数据文件的检测


使用AWK进行数据文件的检测
 
  工作中,需要对数据文件进行检测。看是否符合规定要求。
     如,我生成的数据文件字段间采用0x06进行分割。记录之间,采用回车换行进行分割(一条记录占一行)。一行共有29个字段。
 
因此我只要判断每一行中,采用0x06进行分割后,字段列是否为29即可。如果小于29则肯定数据有问题。将其行号,
字段列数输出,即可。经过网上摸索,使用如下语句:
awk -F '[\06]' '{ i=1;while(i<NF) {i++} if(i<29) {print FNR, NF;}}' 20130426152118_ALL112INFO.TXT 
 
使用上述语句,即可对20130426152118_ALL112INFO.TXT数据文件,进行检测。
如果数据不正确,会将行号,字段列数打印出来,然后在确定bug所在。
找到bug。解决bug也就迎刃而解了。很简单,过滤掉回车换行,即可。使用如下代码进行过滤:
 
    //对null值进行屏蔽,返回空字符串
    private String getString(String strInfo){
        String result = "";
        if( null != strInfo && !"".equals(strInfo)){
            Pattern p = Pattern.compile("\t|\r|\n");
            Matcher m = p.matcher(strInfo);
            result = m.replaceAll(""); //将制表符,回车,换行符过滤掉
        }
        
        return result;
    }    
 

相关内容

    暂无相关文章