无法让 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 tjong。

其中 $NEW_VERS 将是已解析的版本。

所有这些都可以与第一个命令(终端输出)配合使用。但我想让它能够内联编辑文件。

谢谢

相关内容