문제
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
제휴하지 않습니다 StackOverflow