Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491403
  • 博文数量: 71
  • 博客积分: 1332
  • 博客等级: 少尉
  • 技术积分: 772
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:25
个人简介

文章分类

全部博文(71)

文章存档

2013年(19)

2012年(9)

2011年(43)

分类: Python/Ruby

2011-03-23 23:31:56

    今天处理文本的时候,碰到一个问题:行尾 \r 导致在处理字段的时候,总是不能正确匹配。
 
下面是脚本的一部分,只是一个简单的判断:
 
  1. if(( $IN_FILEDATE == "NULL" ))
  2. then
  3.      IN_FILEDATE=""
  4. fi

其中 $IN_FILEDATE 为 awk 获取的一行中的最后一个字段,之前在做文本处理的时候碰到过^M的问题,并没有遇到这样的问题。

上面的判断始终没有如愿以偿,打开调试模式 set -x 才发现,$IN_FILEDATE的值中含有 \r,

  1. + IN_FILEDATE=$'20110317120101\r'

导致判断的时候报错:

  1. == NULL ))17120101
  2.  == NULL : syntax error: invalid arithmetic operator (error token i == NULL

解决办法:

  1. sed -i 's/\r//g' inputfile

将行尾的 \r 删除。

将这个错误记下来,引以为鉴。

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