linux 去处文件中的 r,linux使用dos2unix去掉windows文件行尾中的r | LouisvV's Blog

问题描述:

现有两个文件,文件大小在3GB左右

文件1.txt内容如下所示:

40a8f48655404b35608c6d2d151ca9a4.png

文件2.txt内容如下所示:

6be5eb20da0d64b04c45fadda9e6ace6.png

要将两个文件进行paste合并,文件1内容在前,文件2内容在后

[root@louisvv data]# paste 1.txt 2.txt > 3.txt

进行合并时,发生异常如下图:

7116e5f835edac3b02a37adccd205e7c.png

异常分析:

发生该异常,说明合并的文件格式不正确

将两个文件paste先后顺序调换,合并后的文件没有问题,问题出在1.txt文件上,1.txt文件是在windows系统编辑后,再上传到服务器的

异常原因:

因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致

在Windows中,用 /r/n 表示回车换行,在Linux中,文本文件用 /n 表示回车换行

平时操作的数据,在linux上操作过于繁杂,为了提高工作效率,在windows下进行编辑,但是编辑过后,格式不同

解决办法:

网上有很多办法,例如vim,sed等方式,但是在处理大文件中,处理效率并不好(vim甚至打开都要好久)

所以,我选择了一种快速的方式:dos2unix

dos2unix 顾名思义,dos to unix,是用来将DOS格式的文本文件转换成UNIX格式的一个工具包

快速入门dos2unix

1.安装dos2unix

yum -y install dos2unix*

2.安装完毕后,使用dos2unix对数据进行处理

基础用法:

可以同时处理多个文件

dos2unix 文件

dos2unix默认情况会直接在原来文件上进行更改

如果不想修改原文件,要把转换的结果,保存到新的文件中,可以添加-n参数

用法:

dos2unix -n 原文件 新文件

如果要保持文件时间戳不变,加上 -k参数

用法:

dos2unix -k 文件

解决实例:

直接修改原文件格式

[root@louisvv data]# dos2unix 1.txt

dos2unix: converting file 1.txt to Unix format ...

修改后使用paste合并文件,然后在查看合并后的文件

[root@louisvv data]# paste 1.txt 2.txt > 3.txt

合并后的3.txt文件如下图:

e1d2228fb0b2ab2b2c6375c9acf2badc.png

合并后格式正常,异常解决。

亲,看完了点个赞呗!

5+

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值