我需要在PowerShell中将文件从DOS转换为Unix。
我知道这可以在Unix中轻松完成:
dos2unix file newfile
答案 0 :(得分:3)
试试这个:
$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
的{{1}}参数可能是PowerShell 3的东西,所以如果您使用的是早期版本,则可能需要这样做:
Get-Content
答案 1 :(得分:3)
可能就像
一样简单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)