2017-07-11 18 views
2

末尾に,\r\nのCSVファイルを修正しようとしています。私が何をしても、それは単に何もしません。私は式を[]に入れてみましたが、これはすべての単一カンマを置き換えます。つまり、改行文字と一致できないということです。PowerShellで `、 r n`を置換する

サブライムテキストを使用してファイルをWindowsラインエンディングで保存しましたが、\r\n,\n\r、および\nの両方のバリエーションを試しました。

(Get-Content file.txt) | ForEach-Object { $_ -replace '\,\r\n', [System.Environmen 
t]::NewLine } | Set-Content file2.txt 

は、私はPowerShellのバージョン5.1.15063.413

+2

'Get-Content file.txt | ForEach-Object {$ _。TrimEnd( '、')} |セットコンテンツfile2.txt'?短い形式の 'gc file.txt | %TrimEnd '、' | sc file2.txt' – TessellatingHeckler

答えて

1

を使用していPowerShellはかなり... 特別であることが判明しました。

Get-Contentデフォルトでは、文字列の配列が返されます。すべての改行文字を見つけ、それを使用して入力を前記配列に分割します。つまり、正規表現が一致するための新しい行はありません。

-Rawパラメータを使用してこのコマンドのわずかなバリエーションが修正されました。

(Get-Content file.txt -Raw).replace(",`r`n", [System.Environment]::NewLine) | Set-Content file2.txt 
+0

PowerShell v2にまだ詰まっている人にとって、 '-Raw'パラメータは利用できません。代わりに、彼らができることは配列で読み込まれ、 '(Get-Content file.txt)-join" \ 'n" ' – TheMadTechnician

関連する問題