【问题标题】:How to convert files from Dos to Unix如何将文件从 Dos 转换为 Unix
【发布时间】:2012-02-21 09:24:47
【问题描述】:

我有几个文件要从 Dos 转换为 Unix。是否有任何 API 或方法可以帮助我做到这一点?

【问题讨论】:

标签: java dos2unix


【解决方案1】:

有一些 linux 工具可以做到这一点(例如dos2unix)。

在 Java 中可以使用String.replaceAll() 来完成。

DOS 使用 \r\n 来终止行,而 UNIX 使用单个 \n

String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNIX

所以不,不存在 API。是的,这很容易。

【讨论】:

  • 是否需要将所有文件一个一个打开并replaceAll("\r\n", "\n").
  • 是的,当然。另请注意,这只对 ASCII 文本文件有意义!
【解决方案2】:

Linux/Unix 中有一个名为dos2unix 的实用程序/命令可以帮助您将文件从dos 格式转换为unix 格式。要安装,只需输入控制台(您可能需要 root 权限)

yum install dos2unix

要进行转换,您必须使用命令 dos2unix 后跟文件名。例如

[aniket@localhost ~]$ dos2unix sample.txt 
dos2unix: converting file sample.txt to UNIX format ...

对于目录中的所有文件,您可以简单地使用

dos2unix *

【讨论】:

  • 我不知道为什么这个答案被否决了。毕竟,它确实指出了从yum 安装时要使用的包名称,其他答案都没有提到。
  • @GarretWilson 因为这不是标签中所述的 Java(来自未来的你好:D)
【解决方案3】:
String unixText = windowsText.replaceAll("\r\n", "\n"); // DOS2UNI

上面的行应该删除所有 \r 但由于某种原因它也删除了 \n 所以我必须在将 unixText 打印到文件时将其添加回来: unixText + "\n"

【讨论】:

    【解决方案4】:

    只是使用 dox2unix 的另一种方式(而不是描述的一种 parasietje)。假设你所有的dos文件都在一个文件夹中

    Runtime.getRuntime().exec("dos2unix /path/to/dos/files/*");
    

    【讨论】:

      【解决方案5】:

      大多数 unix/linux 发行版都有名为 unix2dosdos2unix 命令的实用程序。

      编辑: 只需将文件复制到 unix 机器并运行 dos2unix *

      您也可以找到适用于 Windows 的此实用程序并执行相同操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 2013-12-17
        • 1970-01-01
        • 2010-10-13
        • 1970-01-01
        相关资源
        最近更新 更多