如何将文件从DOS转换为Unix

时间:2015-08-18 05:09:50

标签: powershell dos2unix

我需要在PowerShell中将文件从DOS转换为Unix。

我知道这可以在Unix中轻松完成:

dos2unix file newfile

2 个答案:

答案 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)