如何在 Unix 行尾转换 Windows 行尾(CR/LF 到 LF)

新手上路,请多包涵

我是一名 Java 开发人员,我正在使用 Ubuntu 进行开发。该项目是在带有 Eclipse 的 Windows 中创建的,它使用 Windows-1252 编码。

为了转换为 UTF-8,我使用了 recode 程序:

 find Web -iname \*.java | xargs recode CP1252...UTF-8

此命令给出此错误:

 recode: Web/src/br/cits/projeto/geral/presentation/GravacaoMessageHelper.java failed: Ambiguous output in step `CR-LF..data

我已经对其进行了搜索并在 _Bash 和 Windows 中找到了解决方案,重新编码:步骤 `data..CR-LF’ 中的模棱两可的输出,_ 它说:

将行尾从 CR/LF 转换为单个 LF:用 Vim 编辑文件,给出命令 :set ff=unix 并保存文件。现在重新编码应该可以正常运行。

很好,但是我有很多文件要从中删除 CR/LF 字符,而且我无法打开每个文件来执行此操作。 Vi 没有为 Bash 操作提供任何命令行选项。

可以使用 sed 来执行此操作吗?如何?

原文由 MaikoID 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 844
1 个回答

应该有一个名为 dos2unix 的程序会为您修复行尾。如果它还没有在你的 Linux 机器上,它应该可以通过包管理器获得。

原文由 cHao 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题