文件格式导致shell命令grep awk筛选出错

文件格式导致shell命令出错

今天发现了一个问题,对某个文件进行赋值之后,echo $i 是没有问题的 但是当我使用grep 或者awk 进行筛选的时候  发现出问题了,一开始用命令行,根本没任何错误输出,但就是匹配不到对应的数值,我决定用shell脚本 -x 看下情况,一看吓一跳,发现赋值出错了!

cat也是没发现问题的 vim进去之后:set invlist查看是否有多余字符,也是没有问题的

不使用变量单独进行筛选:

 

可以!!说明是变量有问题!  但是又没输出什么问题,只好写到shell里调试一下看看了 

 

 

 

报错: grep $'VAG1_202008091623_001_0012_L1A\r' /root/tmp.txt

可以看出 是在获取参数的时候出了问题,将问题瞄准到参数对应的文件 OVS-1.txt

查看文件格式:

file OVS-1.txt

 

处理文件CRLF line terminators的问题:

因为这个文件是从windows下编辑然后拷贝到服务器上的。于是file文件的时候发现

OVS-1.txt: ASCII text, with CRLF line terminators

其中with CRLF line terminators 应该是windows生成文件时的不同。

估计是windows传过来的时候因为格式的问题在文本中有隐藏的字符。所以在查询结尾的时候无法得到结果。

转换:

 dos2unix OVS-1.txt

查看:

 file OVS-1.txt

OVS-1.txt: ASCII text

成功!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值