![如何在 Windows 计算机上将 DOS 行尾转换为 UNIX](https://linux22.com/image/1550552/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8A%E5%B0%86%20DOS%20%E8%A1%8C%E5%B0%BE%E8%BD%AC%E6%8D%A2%E4%B8%BA%20UNIX.png)
我需要在 Windows 命令脚本中创建一个带有 Linux 行尾的文件。
到目前为止我能得到的最接近的是这个PowerShell单行:
powershell.exe -Command "Get-ChildItem -File "D:\path\file.sh" | % { $x = get-content -raw -path $_.fullname; $x -replace [char[]](13),'' | set-content -path $_.fullname }"
这和我想要的非常接近了……美中不足的是它在文件末尾添加了一个额外的 CR+LF!有什么建议可以解决这个问题吗,或者有其他方法吗?我无法安装任何其他软件,例如 Cygwin 或 dos2unix,因为这是用于锁定的生产环境。
答案1
答案2
这可能就是你所需要的:
powershell.exe -noninteractive -NoProfile -ExecutionPolicy Bypass -Command "& {[IO.File]::WriteAllText('file_lfonly.txt', ([IO.File]::ReadAllText('file_crlf.txt') -replace \"`r`n\", \"`n\"))};"