文档章节

处理文件CRLF line terminators的问题

china008
 china008
发布于 2014/04/03 14:31
字数 325
阅读 64
收藏 0
对比file1.log和file2.log中相同重复的行。

发现很容易实现,直接:

$ for i in `cat file1.log`; do grep $i ./file2.log; done > sameline.log

结果就发现只有一条,研发的同学说至少有上万条记录,我开始找原因:

先输出测试看看格式什么的对不对:

$ for i in `cat file1.log`; do echo "AAA"$i"BBB"; done
BBBxxxxxxxxxxx05_ok
BBBxxxxxxxxxxx06_ok
BBBxxxxxxxxxxx07_ok
BBBxxxxxxxxxxx08_ok

调试一下,发现输出的两端的字符,会选择长度较大的放在最左侧(可以自己试试哈),我一直觉得和换行符有关系,实际上是文件格式的问题。

我最终file了一下源文件和自己再终端随便写的test.log

$ file file1.log
file1.log: ASCII text, with CRLF line terminators

$ file test.log
test.log: ASCII text

终于发现端倪,原来是之前的研发给的结果是win下处理的,是windows的某种格式,没有细究,有兴趣的同学自己去研究文件的格式吧。

总之解决问题最重要:

$ dos2unix file1.log file2.log
file1.logdos2unix: converting file tile1.log to UNIX format ...
file2.logdos2unix: converting file tile2.log to UNIX format ...

测试一下:

$ for i in `cat file1.log`; do echo "AAA"$i"BBB"; done
AAAxxxxxxxxxxx05_okBBB
AAAxxxxxxxxxxx06_okBBB
AAAxxxxxxxxxxx07_okBBB
AAAxxxxxxxxxxx08_okBBB

OK,问题解决。

本文转载自:http://www.hao32.com/unix-linux/565.html

共有 人打赏支持
china008
粉丝 5
博文 286
码字总数 30406
作品 0
海淀
私信 提问
几个与文本处理相关的Linux命令总结

1.当前目录下有若干文件,找出扩展名为TextGrid的所有文件,并复制到../file_set。 2.当前目录下有若干文件,找出扩展名为“TextGrid”且非UTF-8(UTF-8 Unicode Text,with CRLF line term...

耕耘实录
2018/08/31
0
0
shell文件排序、去重、合并、分割

一、文件排序 sort file 排序选项: -b, --ignore-leading-blanks 忽略前导的空白区域 -d, --dictionary-order 只考虑空白区域和字母字符 -f, --ignore-case 忽略字母大小写 -g, --general-...

Sunki
01/28
0
0
linux脚本-文件格式导致脚本异常

  前言      在windows下的文本,默认换行符是^M$,称为CR与LF两个符号;而在Linux中是以$结尾,即LF结尾。因此如果在windows下编辑的shell脚本如果没有选对正确的格式就会出现很诡异的...

linux运维菜
2018/10/29
0
0
linux下查看文件编码及修改编码

查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式。 如果你只是想查看其它编码格式的文件或者想解决用Vim...

澈明
2012/12/28
0
0
PHP网络服务框架--zan

Zan PHP Framework Zan PHP是基于PHP协程的网络服务框架,提供最简单的方式开发面向C10K+的高并发HTTP服务或SOA服务。 核心特效 基于 yield 实现了独立堆栈的协程 类似于 Golang 的并发编程模...

demon666
2016/07/21
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

[Flowable]6.4.1五个war包部署

直接放tomcat http://localhost:8080/flowable-task http://localhost:8080/flowable-modeler http://localhost:8080/flowable-idm http://localhost:8080/flowable-admin http://localhost:......

Danni3
18分钟前
0
0
扩展spring cache 支持缓存多租户及其自动过期

spring cache 的概念 Spring 支持基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代...

冷冷gg
23分钟前
0
0
Kafka连接器深度解读之转换器和序列化释疑

Kafka连接器是Apache Kafka®的一部分,提供数据存储与Kafka之间的流式集成。对于数据工程师来说,只需要使用JSON格式配置文件即可。目前已经有很多数据存储的连接器,仅举几例来说,包括JDB...

李玉珏
29分钟前
0
0
二进制取反

取反,是Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1。 概念 编辑 补码的规定如下: 对正数来说,最高位为0,其余各位代表数值本身(以二进制表示)...

天王盖地虎626
今天
5
0
OSChina 周一乱弹 —— 可乐进化史

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 分享Radiohead的单曲《Creep》 《Creep》- Radiohead 手机党少年们想听歌,请使劲儿戳(这里) @EdmondFrank :刚...

小小编辑
今天
960
17

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部