質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

2回答

32633閲覧

[powershell]ファイル内の改行コードをCR+LFからLFに一括置換したい

999turbulence

総合スコア20

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2021/07/02 06:45

編集2021/07/02 07:01

powershellでcsvファイル内の改行コードCRLFを
一括でLFにしたいのですがうまくいきません。

Get-Content before.csv | foreach { $_ -replace "`r`n","`n" } >> after.csv

コマンドは通るのですが改行コードはかわらず。。。
ヒントを頂けるでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2021/07/02 06:47

コード部分はmarkdown使わないと変なエスケープが入るんで、ちゃんと質問テンプレートやヘルプを参照して書き直そう。
999turbulence

2021/07/02 07:05

すみません、markdownで書きなおしました!
guest

回答2

0

ベストアンサー

Get-Contentで読み込んだ内容は、改行コード入り文字列ではなく、改行で区切られた配列なので改行コードの変換はできません。[System.IO.File]::ReadAllText()を使えばファイル全体を改行コード入りの文字列として取得できます。

また、リダイレクトやSet-Contentでファイル書き込みをすると改行コードが自動的にCR+LFに変換されて書き込まれてしまいます。[System.IO.File]::WriteAllText()を使いましょう。

結論として、以下のコードで改行コードCRLFをLFに変換した結果を書き出せます。

powershell

1$lfText = [System.IO.File]::ReadAllText("before.csv").Replace("`r`n","`n") 2[System.IO.File]::WriteAllText("after.csv", $lfText)

投稿2021/07/02 08:05

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

999turbulence

2021/07/02 11:29

ご回答ありがとうございます。 意図した通り末尾がLFになってくれました! ご丁寧に教えて頂いてありがとうございました。
guest

0

>> で改行が入っています。
Set-ContentAdd-Content には -NoNewline オプションがあり、これを指定すると各行で改行を入れず出力できるので、これを使ってください。
行の終わりに ``n` を加えた上で改行無しで出力すれば意図したようになると思います。

PowerShell

1Get-Content before.csv | Foreach-Object { $_ + "`n" } | Set-Content -LiteralPath after.csv -NoNewline

投稿2021/07/02 08:02

Zuishin

総合スコア28662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

999turbulence

2021/07/02 11:31

ご回答ありがとうございます。 リダイレクトで改行がついてしまうんですね。 教えて頂いたコマンドでうまくいきました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問