我需要在PowerShell中将一个文件从DOS格式转换为Unix格式。
我知道在Unix系统下可以非常容易地完成此操作:
dos2unix file newfile
我需要在PowerShell中将一个文件从DOS格式转换为Unix格式。
我知道在Unix系统下可以非常容易地完成此操作:
dos2unix file newfile
Get-Content in.csv -raw | % {$_ -replace "`r", ""} | Set-Content -NoNewline out.csv
如果您的powershell版本低于3+,则可以使用以下方法。几乎与此处其他答案中的一种相同。
$csvdata = [io.file]::ReadAllText('in.csv') | % {$_ -replace "`r",""}
[io.file]::WriteAllLines('out.csv', $csvdata)
试试这个:
$txt = (Get-Content -Raw myFile.txt) -replace "`r`n","`n"
[io.file]::WriteAllText('c:\path\to\myFile.unix.txt', $txt)
WriteAllText
而不是Set-Content
,因为Set-Content
会在文件末尾添加回车和换行符,似乎没有任何方法可以抑制它。-Raw
参数是PowerShell 3的功能,所以如果你使用的是早期版本,你可能需要像这样操作:$txt = [io.file]::ReadAllText('c:\path\to\myFile.txt') -replace "`r`n","`n"
[io.file]::WriteAllText('c:\path\to\myFile.unix.txt', $txt)