我与 Ubuntu Server 12.10 主机建立了 SMB 连接,该主机包含 shell 脚本和配置文件,我想使用 Notepad++ 在 Windows 7 客户端上编辑这些文件。我可以打开文件并进行更改,但是一旦我保存文件,由于没有更改字符编码,这些文件在主机上就无法读取。
如何在 Windows 7 中编辑和保存文件,以便可以在 Ubuntu Server 12.10 中读取和执行它们?
答案1
编辑:您可以在 Notepad++ 中的编辑 -> EOL 转换 -> Unix 格式中启用 Unix 行终止。
Unix 和 Windows 系统之间文本文件兼容性最常见的问题之一是 Windows 的行终止符号是 CRLF(回车 + 换行,ASCII 码 13 和 10),而 Unix 只使用 LF(10)。这可能会给您带来类似 的错误./foo.sh: bad interpreter: /bin/sh^M: no such file or directory
。
dos2unix
在 Ubuntu 端有一个名为的实用程序可以为您转换任何现有文件:
apt-get install dos2unix
dos2unix myscript.sh
这会就地修改文件以删除 CR。
答案2
正如 Jim 所说,问题可能是行终止。您可以在 Linux 服务器上通过对修改的文件运行以下命令来修复此问题:
sed -i 'N;s/\r\n/\n/g' file