将 Windows/DOS 文件批量转换为 Unix 的最佳方法是什么?
基本上我们需要更改一组文件的行尾字符。
有没有办法通过批处理文件来完成此任务?有免费实用程序吗?
Basically we need to change the end of line characters for a group of files.
Is there a way to accomplish this with a batch file? Is there a freeware utility?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
dos2unix
dos2unix
可以用更短的命令来完成。
It could be done with somewhat shorter command.
您应该能够将
tr
与xargs
结合使用来执行此操作。至少在 Unix 方面,这应该是最简单的方法。然而,十多年前,我曾经在 Windows 机器上尝试过这样做,但发现 Windows 版本的
tr
正在将我的终结符直接转换回 Windows 格式。 :-( 然而,我认为在接下来的十年里,这些工具变得更加智能。You should be able to use
tr
in combination withxargs
to do this.On the Unix side at least, this should be the simplest way. However, I tried doing it that way once on a Windows box over a decade ago, but discovered that the Windows version of
tr
was translating my terminators right back to Windows format for me. :-( However, I think in the interveneing decade the tools have gotten smarter.将 find 与 dos2unix/fromdos 结合起来转换文件目录(不包括二进制文件)。
只需将其添加到您的 .bashrc 中即可:
首先,DOS2UNIX 会查找您是否安装了该实用程序,并选择一个使用
查找创建所有文件的列表,然后文件在每个文本文件后附加“:ASCII 文本”。
最后,grep 选择文本文件,Cut 删除“:”之后的所有文本,xargs 使这一命令行成为 DOS2UNIX 的一大命令行。
Combine find with dos2unix/fromdos to convert a directory of files (excluding binary files).
Just add this to your .bashrc:
First, DOS2UNIX finds whether you have the utility installed, and picks one to use
Find makes a list of all files, then file appends the ": ASCII text" after each text file.
Finally, grep picks the text files, Cut removes all text after ':', and xargs makes this one big command line for DOS2UNIX.