次のように大文字と小文字が関係なくファイル内の単語を置き換えるには、sedコマンドを使用しようとします。
sed -ie s/$tbl/$third_ele/gI $sql_file
これには$tbl
S_ASSET という単語と$third_ele
table_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