sed を使用してキーワード一致変数を渡す際にエラーが発生しました。

sed を使用してキーワード一致変数を渡す際にエラーが発生しました。

テキスト処理用のbashスクリプトを作成していますが、このコマンドを実行するとエラーが発生します。

sed -e "/\<$7\>/ /\<$5\>/$6/" < "$2/$1" > "file.tmp"

これにより、次のエラーが発生します。

> Unrecognized command: /\<key\>/ /\<Hi\>/Hello/

私は何が間違っていましたか?

変数の値はエラーと同じです。

「$2/$1」はファイルパスとファイル名です。

答え1

あなたの質問を理解したかどうか見てみましょう。ファイルの行が$ 7と一致する場合は、$ 5を$ 6に置き換えますか?そこに「s」がありません。

sed -e "/\<'$7'\>/s/\<'$5'\>/'$6'/" < "$2/$1" > "file.tmp"

関連情報