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당신이 사용하고 있는 것이 당신이 원하는 방식으로 내부 편집을 허용하는지 모르겠습니다 .

관련된:

관련 정보