【发布时间】:2011-04-22 21:48:15
【问题描述】:
我是一名 Java 开发人员,我正在使用 Ubuntu 进行开发。该项目是在 Windows 中使用 Eclipse 创建的,它使用 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 and Windows, Recode: Ambiguous output in step `data..CR-LF' 中找到了解决方案,它说:
将行尾从 CR/LF 转换为 单个 LF:用 Vim 编辑文件, 发出命令
:set ff=unix并保存 文件。现在重新编码应该运行 没有错误。
很好,但是我有很多文件要从中删除 CR/LF 字符,而且我无法打开每个文件来执行此操作。 Vi 没有为 Bash 操作提供任何命令行选项。
可以使用 sed 来执行此操作吗?怎么样?
【问题讨论】:
-
recode在尝试使用混合 dos (\r\n- CRLF) 和 unix (\nLF) 换行编码重新编码文件时产生此错误。不幸的是fromdos,以前是二进制文件,现在是 recode 的别名,它有这个问题。 -
你不能吗
vim +ex_command_one +ex_command_two ... file -
令人惊讶!答案中没有
awk解决方案。
标签: windows linux end-of-line