sedコマンドは変数の正確な単語を認識しません

sedコマンドは変数の正確な単語を認識しません

次のように大文字と小文字が関係なくファイル内の単語を置き換えるには、sedコマンドを使用しようとします。

sed -ie s/$tbl/$third_ele/gI $sql_file

これには$tblS_ASSET という単語と$third_eletable_01 が含まれます。ファイルにS_ASSET_XAという単語が含まれていて、スクリプトがS_ASSET_XAを私が望んでいないtable_01_XAに置き換えると問題が発生します。 S_ASSET_XAを別の単語table_02に置き換える必要がある別のインスタンスがあるため、置き換えるときに正確に一致する必要があります。

どうすればいいですか?

ベストアンサー1

単語の境界を表示するには\ bを使用してください。コマンドラインで実行されているため、エスケープ文字を2倍にする必要があります。これは、sedに渡す前にシェルが独自の補間を実行するためです。

sed -ie s/$tbl\\b/$third_ele/gI $sql_file

おすすめ記事