sed コマンドを使用して文を検索し、空白に置き換えます。

sed コマンドを使用して文を検索し、空白に置き換えます。

sedコマンドを使用してファイルの一部のテキストを置き換えようとしています。

echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:/\W9042/native_transport_port:9080'

エラーが発生します。sed: 1: "s/native_transport_port ...": bad flag in substitute command: 'n'

試しましたが、echo 'native_transport_port: 9042' | sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080' エラーが発生しました。sed: 1: "s/native_transport_port ...": unterminated substitute in regular expression

デフォルトではNative_transport_portを検索し、9042を9080に置き換えようとします。

答え1

s最後のコマンドでコマンドを終了する必要があります/

sed -E 's/native_transport_port:\s9042/native_transport_port:\s9080/'

これにより、\s交換部品は特別な意味を持たないため、sそうする必要があります。

sed -E 's/native_transport_port:\s9042/native_transport_port: 9080/'

または空白をそのまま再現したい場合は、

sed -E 's/(native_transport_port:\s)9042/\19080/'

一致するテキストを置き換えて再利用します。

sedPerlスタイルをサポートしていない場合は、\s代わりにスペースでマッチングできます。

sed 's/native_transport_port: 9042/native_transport_port: 9080/'

関連情報