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/'
一致するテキストを置き換えて再利用します。
sed
Perlスタイルをサポートしていない場合は、\s
代わりにスペースでマッチングできます。
sed 's/native_transport_port: 9042/native_transport_port: 9080/'