将 Windows/DOS 文件批量转换为 Unix 的最佳方法是什么?

发布于 2024-08-27 11:48:36 字数 63 浏览 11 评论 0原文

基本上我们需要更改一组文件的行尾字符。

有没有办法通过批处理文件来完成此任务?有免费实用程序吗?

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

﹉夏雨初晴づ 2024-09-03 11:48:36

可以用更短的命令来完成。

    find ./ -type f | xargs -I {} dos2unix {}

It could be done with somewhat shorter command.

    find ./ -type f | xargs -I {} dos2unix {}
猫烠⑼条掵仅有一顆心 2024-09-03 11:48:36

您应该能够将 trxargs 结合使用来执行此操作。

至少在 Unix 方面,这应该是最简单的方法。然而,十多年前,我曾经在 Windows 机器上尝试过这样做,但发现 Windows 版本的 tr 正在将我的终结符直接转换回 Windows 格式。 :-( 然而,我认为在接下来的十年里,这些工具变得更加智能。

You should be able to use tr in combination with xargs 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.

稀香 2024-09-03 11:48:36

将 find 与 dos2unix/fromdos 结合起来转换文件目录(不包括二进制文件)。

只需将其添加到您的 .bashrc 中即可:

DOS2UNIX=$(which fromdos || which dos2unix) \
  || echo "*** Please install fromdos or dos2unix"
function finddos2unix {
# Usage: finddos2unix Directory
find $1 -type f -exec file {} \; | grep " text" | cut -d ':' -f1 | xargs $DOS2UNIX
}

首先,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:

DOS2UNIX=$(which fromdos || which dos2unix) \
  || echo "*** Please install fromdos or dos2unix"
function finddos2unix {
# Usage: finddos2unix Directory
find $1 -type f -exec file {} \; | grep " text" | cut -d ':' -f1 | xargs $DOS2UNIX
}

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文