태그 내부와 태그 내에서만 모든 것을 &
로 바꿔야 합니다 . 또한 in을 변경하면 안 됩니다. 입력 예:#
<faultstring> ... </faultstring>
&
&
123&&<faultcode>IBM.Error<faultstring>special character & and one converted &</faultstring></faultcode>&&123
예상 출력:
123&&<faultcode>IBM.Error<faultstring>special character # and one converted &</faultstring></faultcode>&&123
다음은 테두리에 적용되지만 다음 &
으로 대체됩니다.#amp;
sed -e :1 -e 's@\(<faultstring>.*\)&\(.*</faultstring>\)@\1#\2@;t1'
또한 이러한 패턴을 파일로 대체합니다.
추신: 혼란을 피하기 위해 새로운 질문을 만들었습니다.내 이전 주제. 이것이 이전 스레드에 병합될 수 있다고 생각되면 그렇게 하십시오. 새로운 단서가 사람들이 신속하게 답변하고 혼란을 최소화할 수 있기를 바랍니다.
답변1
이것은 나에게 효과적입니다.
sed -e :1 -e 's@\(<faultstring>.*\)&\([^amp;]\)\(.*</faultstring>\)@\1#\2\3@;t1' file
이를 교체하려면 다음을 &
사용하십시오.
sed -e :1 -e 's@\(<faultstring>.*\)&\([^amp;]\)\(.*</faultstring>\)@\1\&\2\3@;t1' file