我使用 Linux 计算机进行开发,然后将我的脚本文件部署到 Windows 计算机 Azure 函数应用程序。
然后我将 shell 脚本文件从 Azure 函数应用复制到 wasb。
在 Azure HDI 群集上的边缘节点中运行 shell 脚本时出现以下错误
$'\r': command not found
我的脚本文件未正确执行。
在 C# Azure 函数中转换 dos2unix 选项的最佳方法是什么?
最佳答案
您无需执行任何特殊操作即可读取包含 Unix 样式换行符 (\n
) 而不是 \r\n
的文件。 .NET IO 方法将两者都视为换行符。
你可以这样写
var lines-File.ReadAllLines("myUnixText.txt");
或
using(var reader=File.OpenText("myUnixText.txt"))
{
string line;
while( (line=reader.ReadLine()) !=null)
{
// Do something
}
}
读取行,无论行结尾是\r
还是\n
证明这一点:
var numbers = new[]{1,2,3,4,5,6};
var lines=String.Join("\n",numbers);
File.WriteAllText("myUnixText.txt",lines);
var newLines=File.ReadAllLines("myUnixText.txt");
Debug.Assert(newLines.Length==6);
即使只写入了单个字符串,File.ReadAllLines
也从文件中读取了 6 行
关于c# - 将 Windows 文件格式转换为 Linux 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46926498/