패치 할 XML 파일이 수천 가지가 있습니다.sed : regex를 사용하여 많은 XML 파일에서 '<'char를 '<'으로 바꿉니다.
많은 내용이 다음과 같은 문제를 포함하고 있습니다. <someTag attr='text [< 99]'/>
(왼쪽 꺾음 괄호 안에 각을 기입하십시오).
* .xml에 대해 [<
의 모든 인스턴스를 [<
으로 바꾸려면 sed 표현식을 작성하고 싶습니다.
sed -n 19p myFile.xml
은 예상대로 <someTag attr='text [<99]'/>
을 반환합니다.
echo '[<45' | sed -n '/\[</p'
은 예상대로 [<45
을 반환합니다.
그러나 sed -n '/\[</p' myFile.xml
은 아무 것도 반환하지 않으므로 반향으로 반대로 파일에 대해 해당 식을 사용할 때는 다른 구문이 필요합니다. 어떤 문법을 사용해야합니까?
sed -i -n 's/correct expression/\[</g/p' *.xml
그런 짓을하는 것입니다. 그것은 합리적으로 보입니까?
BTW는 sed를 사용하는 도구처럼 보였지만 Linux에서 실행되는 다른 솔루션을 사용하면 문제가 없습니다.
감사합니다. 에코 반대 같은 파일에 대해 그 표현을 사용하는 경우
당신이 준 예제'sed -n '/ \ [ p'file'이 나를 위해 잘 작동하는 것 같습니다. OS X 10.7에서 터미널을 사용하고 있습니다. –
네 말이 맞아. 나는 19 행을 별도의 파일로 sed'd하고 그것을 일치시킬 수 없습니다. 그 시점에서 나는 미쳐 버렸다. 문제가되는 항목을 복사하여 텍스트 편집기에 붙여 넣었을 때, 나는이 진절머리 나는 VT에서 동일하게 보입니다. ( – user2029783