インラインファイル更新モードで動作するようにsedコマンドを取得できません。

インラインファイル更新モードで動作するようにsedコマンドを取得できません。

このsedコマンドは、端末に出力するときに機能します。

for FILE in *.cs; do NEW_VERS="$(cat $FILE | awk '/%version:/{print $(NF-1)}')"; sed -e "/Revision.*/,/using/{/\/\/.[\*]*[\*]$/i \\/\/  $NEW_VERS      221203  berra tjing tjong." -e '}' $FILE; done

インラインファイルの更新に「i」を試してみましたが、動作しません。

for FILE in *.cs; do NEW_VERS="$(cat $FILE | awk '/%version:/{print $(NF-1)}')"; sed -ie "/Revision.*/,/using/{/\/\/.[\*]*[\*]$/i \\/\/  $NEW_VERS      221203  berra tjing tjong." -e '}' $FILE; done
sed: -e expression #1, char 1: unexpected `}'
sed: -e expression #1, char 1: unexpected `}'
sed: -e expression #1, char 1: unexpected `}'
sed: -e expression #1, char 1: unexpected `}'
sed: -e expression #1, char 1: unexpected `}'

ループ内でファイルをインラインで更新するには、どのコマンドを変更する必要がありますか?

できること:

このコマンドは、開始パターンが「Revision.*」で終了パターンが「using」のブロックを探します。このブロックで "//****************" と同じ行を探し、上に次の行を追加します: $NEW_VERS 221203 berra tjing t Jong.

ここで $NEW_VERS は解析されたバージョンです。

これはすべて最初のコマンド(ターミナル出力)で機能します。しかし、ファイルをインラインで編集できることを願っています。

ありがとう

ベストアンサー1

おすすめ記事