Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2545691
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: LINUX

2013-04-27 16:33:27

     工作中,需要对数据文件进行检测。看是否符合规定要求。
     如,我生成的数据文件字段间采用0x06进行分割。记录之间,采用回车换行进行分割(一条记录占一行)。一行共有29个字段。
因此我只要判断每一行中,采用0x06进行分割后,字段列是否为29即可。如果小于29则肯定数据有问题。将其行号,
字段列数输出,即可。经过网上摸索,使用如下语句:
awk -F '[\06]' '{ i=1;while(i
使用上述语句,即可对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;
    }   

阅读(3160) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chengxiaopeng2013-11-14 08:52:51

kaneroa:awk -F '[\06]' '(NF<29) {print FNR, NF;}' 20130426152118_ALL112INFO.TXT

谢谢,你写的更简洁,高效。

回复 | 举报

kaneroa2013-05-03 12:47:50

awk -F '[\06]' '(NF<29) {print FNR, NF;}' 20130426152118_ALL112INFO.TXT