
&
'&'를 다음과 같은 XML 특수 문자 제외 로 바꾸고 싶습니다 .
" "
' '
< <
> >
& &
나는 언급된 방법을 시도했다.두 문자열 사이에 지정된 문자를 바꾸시겠습니까?그리고지정된 XML 태그에서 XML 엔터티 `&`에 있는 항목이 아닌 모든 `&`를 `#`으로 교체하고 sed로 교체나에게는 효과가 없는 것 같습니다.
답변1
Perl 원라이너 사용:
perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g'
이 -p
플래그는 Perl이 sed처럼 동작하도록 만들고(STDIN 라인을 반복하고, 작업을 수행하고, STDOUT으로 인쇄), -e
파일이 아닌 인수에서 명령을 읽도록 지시합니다.
정규식 대체는 다음을 수행합니다.
- 성냥
&
- 뒤따르지 않음
quot
또는apos
...amp
- 세미콜론
- 로 교체하다
&
- 온라인의 모든 경기에 대해.
sed처럼 사용하려면 예를 들어
perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g' < my-file.xml
./myscript.sh | perl -pe 's/&(?!(quot|apos|lt|gt|amp);)/&/g'