删除DOS结尾符的方法
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"
上一篇: 查找最新的文件的批处理bat文件
下一篇: 用bat实现打开快捷方式指向的目录
推荐阅读
-
Linux删除swap里的指定文件的方法
-
Win7系统桌面图标无法删除怎么办?Win7桌面图标删除不了的解决方法
-
删除Mysql的MySql-bin.0000X日志文件的方法
-
win7系统无法删除文件提示您需要权限来执行此操作的解决方法
-
Win10系统packages文件夹能删除吗?Win10清理packages文件夹的方法
-
C#在foreach遍历删除集合中元素的三种实现方法
-
Linux unlink函数和删除文件的操作方法
-
SQL Server 2005删除日志文件的几种方法小结
-
sql server 2005因架构无法删除用户错误15138的解决方法
-
Linux下用SSH退出符切换SSH会话的实现方法