sed는 명령줄에서는 작동하지만 스크립트에서는 작동하지 않습니다.

sed는 명령줄에서는 작동하지만 스크립트에서는 작동하지 않습니다.

명령줄에 직접 입력하면 작동하는 이유는 무엇입니까?

oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

하지만 스크립트에 넣으면 다음과 같이 되지 않습니다.

#!/bin/bash
oldversion=12345
newversion=67890
sed -i "s/${oldversion}/${newversion}/g" "/home/user/MyDir_${newversion}/MyDir_${newversion}.reg"

다음과 같이 실행됩니다../myscript.sh

오류가 발생합니다

sed: -e 표현식 #1, 문자 16: 's'에 대한 알 수 없는 옵션

답변1

문자 16은 sed 스크립트에 존재하지 않습니다. 이것은 "sed가 불평하는 문자입니다. 이는 편집기나 입력 방법이 이를 ASCII가 아닌 표현으로 대체했음을 의미합니다 ". 내 추측은 또는 .¨

파일을 사용하여 file인코딩을 추측해 보세요. "ASCII"여야 합니다. 다른 내용은 파일에 의도하지 않은 콘텐츠가 포함되어 있음을 의미합니다.

관련 정보