sed
스크립트에서 명령을 실행합니다 .
sed -i "${1}s/${2}=.*/${2}=${REPLY}/" $3
이것은 에코입니다.
sed -i 13s/log4j.appender.ROOT2.File=.*/log4j.appender.ROOT2.File=/app/TET/log.log/ /applis/DIAPASON/diapason1/conf/log4j.properties
내 실수:
sed: -e expression n°1, character 61: unknown option for
예
답변1
변수에 여러 /
문자가 있어서 $REPLY
혼란스럽습니다 sed
.
s///
대부분의 Python 버전에서는 명령에 대해 대체 구분 기호를 선택할 수 있으므로 sed
, 저라면 다음과 같이 시도해 보겠습니다.
sed -i "${1}s|${2}=.*|${2}=${REPLY}|" $3
이는 /
sed를 대체하여 in (희망적으로)이 해석되지 않도록 |
합니다 ./
${REPLY}
sed
답변2
명령 구분 기호로 임의의 문자를 사용하십시오. 다음 예를 참조하십시오.
sed -Ei "s|$k|$j|g" filename.txt