実現したいこと
PowerShellにて元ファイルの改行コードがLFであるファイルの内容を置換する際、改行コードを変更せずに出力したいです。
発生している問題・エラーメッセージ
改行コードがLF -> CRLFに変更される
該当のソースコード
Powershell
1(Get-Content "\path\to\file") | Foreach-Object { 2 $_ -replace "xxx","aaa" ` 3 -replace "yyy","bbb" ` 4 -replace "zzz","ccc" 5 } | Set-Content "\path\to\file"
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
下記のような質問は推奨されていません。
- 質問になっていない投稿
- スパムや攻撃的な表現を用いた投稿
適切な質問に修正を依頼しましょう。
回答2件
0
■置換 ^xxx$ と LF保存(高速)参考にしてください。
PowerShell
1$b = [System.IO.File]::ReadAllLines("C:\test\DATA.txt",[System.Text.Encoding]::UTF8) # 入力エンコード UTF8 ReadAllLines(CRLF読み込み) 2$b = $b -replace "^xxx$","■" # 置換 ^xxx$ 3$b = ($b -join "`r`n") -replace "`r`n","`n" # LFに変更 4[System.IO.File]::WriteAllText("C:\test\NEW.txt",$b,(New-Object System.Text.UTF8Encoding($False))) # 出力エンコード UTF8 BOM無 WriteAllText(LF保存)
■手順■
①Cドライブに testフォルダ を作成してください。
②testフォルダの中に DATA.txt を作成してください。
③実行するとtestフォルダの中に NEW.txtを作成します。
※ ^xxx$ を使用できます。
※ .NET を使用して高速化しています。
投稿2023/02/24 02:24
総合スコア299
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
0
ベストアンサー
デフォルトで Get-Content は改行区切りで読み込み、Set-Content は改行を付加するようになっていますが、ファイルに含まれない文字を区切りとして読み込み、改行を付加せず書き込むと良いでしょう。
PowerShell
1(Get-Content "\path\to\file" -Delimiter "`0") | Foreach-Object { 2 $_ -replace "xxx","aaa" ` 3 -replace "yyy","bbb" ` 4 -replace "zzz","ccc" 5 } | Set-Content "\path\to\file" -NoNewline
投稿2023/02/23 20:52
総合スコア28309
下記のような回答は推奨されていません。
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
このような回答には修正を依頼しましょう。
回答へのコメント
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Q&A
解決済
asp.net core で input type="file" の選択内容を保持する
回答3
クリップ1
更新
2023/05/31
Q&A
解決済
NotionAPIでページコンテンツを取得したい
回答1
クリップ1
更新
2023/05/31
Q&A
解決済
ハンバーガーメニューの挙動について(transitionが、もとに戻る時には適応されない)
回答2
クリップ0
更新
2023/06/02
Q&A
受付中
[GAS] 日本語・全角・特定の記号のみを許容するスクリプトを作成したい
回答1
クリップ1
更新
2023/06/06
Q&A
解決済
htmlの検索フォームにcssを適用させたいです。
回答1
クリップ0
更新
2023/06/02
意見交換
受付中
Wordpressのphpファイルにデータベースの接続情報を直接記入しても大丈夫なのでしょうか。
回答39
クリップ3
更新
2023/05/25
Q&A
解決済
python で 自作モジュールを読み込みたい
回答1
クリップ0
更新
2023/06/07
意見交換
クローズ
C++のコードをヘッダに書くか、ソースに書くかについて
回答16
クリップ0
更新
2023/05/26
同じタグがついた質問を見る
Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。