您现在的位置是:网站首页> 编程资料编程资料
删除DOS结尾符的方法_DOS/BAT_
2023-05-25
446人已围观
简介 删除DOS结尾符的方法_DOS/BAT_
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 "\r\n" "\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下获取系统时间的代码_DOS/BAT_
- 通过U盘实现本机添加管理员权限_DOS/BAT_
- dos批量替换当前目录后缀名的实现代码_DOS/BAT_
- 让DOS下输入命令时也可以象Linux一样用Tab键进行命令自动填充_DOS/BAT_
- 命令行删除带.的文件夹(畸形文件夹)_DOS/BAT_
- dos命令介绍_DOS/BAT_
- 查看系统网络连接打开端口、系统进程、DOS打开文件的命令_DOS/BAT_
- 分享dos批处理命令的一些使用技巧(截取字符串)_DOS/BAT_
- 使用批处理for命令清除事件查看器所有Windows EventLog日志_DOS/BAT_
- 清除系统垃圾文件的批处理(无错增强版)_DOS/BAT_
