2013-08-19 2 views
0

text.xml에서 단어를 바꾸기 위해 sed를 사용하고 있습니다.sed formatting 큰 따옴표 작은 따옴표

text.xml은 다음과 같습니다

some line 
<state name='generate'> 
    notify 
</state> 
some line 

나는 단어 지금까지이 명령은 '발신자와 을'통보 '대체하기 위해 노력하고있어 :

sed -i "/<state name=\'generate\'>/,/<\/state>/s/notify/caller/" ./test.xml 

I을 사이에 줄의 범위를 줄 것입니다. 그 줄 사이에 나는 전화하는 사람에게 바뀌고있는 'notify'라는 단어가 있습니다.

인용문이 맞는지 확실하지 않습니다. 감사합니다. 감사합니다.

편집 : 생성 주위에 이스케이프 문자를 제거하여 작동하도록했습니다.

sed -i "/<state name='generate'>/,/<\/state>/s/notify/caller/" ./test.xml 

누구나 그 이유를 알고 있습니까? 당신이 샌드위치에 전체 표현식을 큰 따옴표를 사용하는 경우 작은 따옴표를 이스케이프 할 필요가 없습니다 것 같다

+0

큰 따옴표를 사용하여 전체 식을 샌드위치 할 때 작은 따옴표를 이스케이프 할 필요가없는 것 같습니다. 나는 당신이 single quote 샌드위치로 대신 시도한 첫 번째 명령을 시도했는데 쉘이 뭔가를 기다리고있는 것 같았습니다. – Siddhartha

+0

작은 따옴표를 한 번 사용할 때 이스케이프 문자가 필요합니다. 두 명이라면 시작과 끝이 있기 때문에 자신을 취소합니다. – Sazzy

답변

-1

... -

싯다르타

나는 이스케이프 문자 주위에 생성 제거하여 작업을 얻었다. - user2661842

+0

당신이 여기에서하려고하는 것을 고맙게 여긴다.하지만 실제로는 답을하지 못한다. 더 나은 모양으로 편집하려면 약간의 시간을 할애 해 주시겠습니까? – Flexo