Notepad++:文档创建后将 EOL 从 Windows 转换为 Unix?

Notepad++:文档创建后将 EOL 从 Windows 转换为 Unix?

我在 Notepadd++ 中创建了一个 Bash 脚本,但在 下错误地执行了EOL conversion > Windows。然后我在 Bash 上运行它,但出现了很多问题和错误(例如,每个带有单个制表符缩进的空行都显示为一个点)。

深度检查发现cat -v文件中存在一些类似 Windows 格式的隐藏字符,这些字符是由 Notepad++ 插入的一些隐藏的 Windows 格式字符造成的,导致文件被 bash 误解。

尽管我已经将 EOL 模式更改为 Unix,但整个文件似乎仍以 Windows 格式格式化。我现在可以删除所有制表符和回车符并重新保存,但您知道有没有一种自动将其更改为 Nix 格式的方法吗?

谢谢,

答案1

你可以尝试dos2unix将您的文件转换为 Unix 格式。

或者,在 Notepad++ 中检查编码设置为什么 - 理想情况下您需要 UTF-8(在编码选项卡中使用“转换为 UTF-8”)。

答案2

使用基本的文本操作工具很容易修复此问题。以下任何命令都可以修复您的文件:

  1. sed:

    sed -i 's/\r//' file.sh
    
  2. perl

    perl -i -pe 's/\r//' file.sh
    
  3. tr

    tr -d $'\r' < file > newfile && mv newfile file
    

相关内容