인라인 파일 업데이트 모드에서 작동하도록 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는 구문 분석된 버전입니다.

이 모든 것은 첫 번째 명령(터미널 출력)에서 작동합니다. 하지만 파일을 인라인으로 편집할 수 있기를 바랍니다.

감사해요

관련 정보