手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >删除DOS结尾符的方法
删除DOS结尾符的方法
摘要:DOS结尾符:CRLFCarriage-ReturnLine-Feed#检查文件是否含有CRLF1.filedosfile返回CRLF2.c...

DOS结尾符:CRLF Carriage-Return Line-Feed

# 检查文件是否含有CRLF

1. file dosfile

返回CRLF

2. cat -a dosfile

返回^M

# 删除CRLF

1. vim

:set fileformat=unix # :set ff=unix

:w

:s/^M//gc # Linux: Ctrl+V+M Enter, AIX: Ctrl+V Ctrl+^ Enter

:w

2. dos2uninx dosfile

3. col -bx dosfile

4. sed -e 's/^M//' dosfile

5. tr

tr -s "rn" "n" dosfile

tr -d "r" dosfile

6. cat dosfile | perl -pe '~s//r//g'

用dos的copy命令合并文件(如何消除结尾的1A结束符) .

最近公司Tenfore FeedHandler项目分割存储了大量的RawData文件。由于TenforeRawData非常大, 因此存储策略是每一小时存储一个rawdata文件。但在进行数据分析回放时,又希望将它们合并成一个大文件。刚开始是想到网上找一个第三方合并工具,后一想,dos的copy命令不是可以合并文件吗? 马上试一下!

例如,希望将a.dat和b.dat合并成c.dat。其中,a.dat二进制内容如下“30 78 30 31 30 78 30 32”,b.dat二进制内容如下“30 78 30 33 30 78 30 34”,写了个dos脚本merge.bat,内容如下:"copy a.dat+b.dat c.dat"。

但新生成的c.dat文件最后多了个结束符"1A",c.dat文件内容如下“30 78 30 31 30 78 30 32 30 78 30 33 30 78 30 34 1A”。

后上网查找了一下原因,是由于copy命令默认是将目标文件和源文件均视为文本文件,因此新生成的文件带上了文本结束符"1A"。

解决的办法很简单,就是在拷贝时指明是拷贝二进制文件。

新的批处理内容如下:"copy /b a.dat+b.dat c.dat"

【删除DOS结尾符的方法】相关文章:

CMD下读取/修改/删除注册表项的方法

DOS下内存的配置方法

在DOS下使用长文件名的方法

dos下删除文件夹和文件的方法

DOS下命令符开启wifi无internet访问的解决办法

DOS下网络浏览器的使用方法

用批处理删除注册表健值的方法分享

备份硬盘引导记录的方法

CMD下建立虚拟目录的方法

批处理中直接执行vbs的方法

精品推荐
分类导航