PowerShell: 文字列中の改行を削除する ReplaceLineEndings
PowerShellで文字列中の改行を削除する場合は いくつか方法がありますが、 ReplaceLineEndingsメソッドを使用するのが最も簡単です。 その他にはReplaceメソッドを使ったり、 -replace演算子を使っても実現できます。
ReplaceLineEndingsメソッドで改行を削除
ReplaceLineEndingsメソッドは .NET Framework Stringクラスのメソッドです。 文字列内の改行シーケンスを全て置換します。
書式
文字列.ReplaceLineEndings(置換後文字列)
置換後文字列に""空文字を指定することで改行を削除できます。
ReplaceLineEndingsを使えば
「`n」「`r」「`r`n」の全てに対応しているので、
具体的な改行コードの内容を気にしなくて済みます。
次のサンプルコードでは、 文字列"abc"と"xyz"の間に改行コード「`n」「`r」「`r`n」があり、 それぞれの改行コードをReplaceLineEndingsで削除しています。
$s1 = "abc`nxyz" $s2 = "abc`rxyz" $s3 = "abc`r`nxyz" $s1.ReplaceLineEndings("") # abcxyz $s2.ReplaceLineEndings("") # abcxyz $s3.ReplaceLineEndings("") # abcxyz
参考サイト
String.ReplaceLineEndings メソッド (System) | Microsoft Docs
Replaceメソッド
Replaceメソッドを使用する場合、 第1引数に改行コードを指定する必要があります。 Replaceメソッドは正規表現が使えないので改行コードに応じてそれぞれの 方法を記述します。
次のサンプルコードはReplaceメソッドの使用例です。
$s1 = "abc`nxyz" $s2 = "abc`rxyz" $s3 = "abc`r`nxyz" $s1.Replace("`n", "") # abcxyz $s2.Replace("`r", "") # abcxyz $s3.Replace("`r`n", "") # abcxyz
-replace演算子
-replace演算子を使用する場合は正規表現が使えます。
例えば改行コードが「`n」か「`r`n」に限定されているのなら、
正規表現で「`r?`n」と1つにまとめることも出来ます。
-replace演算子のコード例は次の通りです。
$s1 = "abc`nxyz" $s2 = "abc`rxyz" $s3 = "abc`r`nxyz" $s1 -replace "`r?`n", "" # abcxyz $s2 -replace "`r", "" # abcxyz $s3 -replace "`r?`n", "" # abcxyz