문제

SED에서 '<'및 '>'캐릭터를 어떻게 탈출합니까?

교체 할 태그 사이에 텍스트가 필요한 XML 파일이 있습니다. '>'및 '<'문자를 어떻게 탈출합니까?

> 및 <의 문제는 출력을 파일로 리디렉션하는 것이 쉘에 특별한 의미가 있다는 것입니다. 따라서 Backslash는 작동하지 않습니다.

도움이 되었습니까?

해결책

확인. 혼자서 발견되었습니다. 인용문을 사용하십시오.

$ sed -i "s/>foo</>bar</g" file

다른 팁

백 슬래시를 그들 앞에 놓거나 단일 또는 이중 인용문으로 둘러싸십시오. 두 번째 생각에, 당신의 질문은 더 명확해야한다고 생각합니다. SED를 사용하여 XML 파일을 처리하려고합니까? 태그 사이에 무엇이 있는지 얻고 싶습니까? 그럼 당신은 원합니다 :

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml

Escape them with backslash

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top