sed가 파일의 텍스트를 대체하는 변수와 작동하지 않습니다

sed가 파일의 텍스트를 대체하는 변수와 작동하지 않습니다

디렉토리에 존재하는 모든 js 파일의 문자열을 바꾸고 싶습니다.

export name="test_user" &&
echo $customerName &&
sed -i -- 's/this.NAME=""/this.NAME=\"'$name'\"/g' *.js

공백을 사용하지 않으면 잘 작동하지만 위의 문자열을 사용하면 명령이 실패합니다.

답변1

's/this\.NAME=""/this.NAME="'"$name"'"/g'

여러 부분으로 나누어집니다:

  1. 's/this\.NAME=""/this.NAME="'
  2. "$name", 이것이 중요한 부분입니다. 변수 확장을 인용해야 합니다.
  3. '"/g'

또한 대체에 를 사용하고 \"작은따옴표로 묶인 경우 결과에 \"가 아닌 을 삽입하게 됩니다."

라는 변수를 사용하는 것 같습니다 customerName. 나는 이것이 오타라고 가정합니다.

sed당신이 사용하고 있는 것이 당신이 원하는 방식으로 내부 편집을 할 수 있는지 여부 는 모르겠습니다.

관련된:

관련 정보