I need to convert a file from DOS to Unix in PowerShell.
I know this can be very much easily done in Unix:
dos2unix file newfile
I need to convert a file from DOS to Unix in PowerShell.
I know this can be very much easily done in 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
to 的参数Get-Content
可能是 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)