특정 문자열을 검색하고 파일 내의 모든 항목을 바꾸려고 합니다.
sed -i -e "s/$search_string/$replace_string/g" $filePath
sed: unmatched '/'
BusyBox v1.35.0에서 계속 오류가 발생합니다 . 그러나 내 로컬 시스템에서도 똑같은 일이 잘 작동합니다.
그리고아니요, $search_string
및 에는 가 $replace_string
포함되어 있지 않습니다 /
. 혹시라도 모든 유형의 구분 기호를 사용해 보았습니다.
답변1
$replace_string이 공백과 새 줄이 포함된 base64로 인코딩된 문자열이기 때문에 문제가 발생했습니다.
replace_string=$(echo -n $json_string | base64)
위의 명령을 다음으로 변경합니다.
json_string=$(echo -n $json_string | base64 -w 0)
나를 위해 해결해 줬어
-w, --wrap=COLS COLS 문자 뒤에 인코딩된 줄을 묶습니다(기본값 76). 줄 바꿈을 비활성화하려면 0을 사용합니다.