디렉토리에 있는 모든 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'
여러 부분으로 나누어져 있습니다:
's/this\.NAME=""/this.NAME="'
"$name"
, 이것은 중요한 점입니다: 변수 확장은 인용되어야 합니다.'"/g'
또한 \"
교체에 사용하고 작은따옴표로 묶은 경우 \"
대신 결과에 삽입이 표시됩니다."
또한 이라는 변수를 사용하고 있는 것 같습니다 customerName
. 나는 이것이 오타라고 가정합니다.
sed
당신이 사용하고 있는 것이 당신이 원하는 방식으로 내부 편집을 허용하는지 모르겠습니다 .
관련된: