2013-03-18 2 views
0

많은 파일에서 특정 텍스트를 찾아 교체해야합니다. 대체 할 sed를 사용하려고합니다. 여기에 내가 할 노력하고 무엇 :sed find regex를 사용하여 바꾸기 (inplace replace)

찾기 :

<font size="4" face="verdana, arial,geneva"><b>([^<]*)</b></font> 

로 교체 :

<font size="4" face="verdana, arial,geneva"><b><title>$1</title></b></font> 

Esentially은 내가 내가 무엇을 발견 주위에 <title></title> 태그를 추가 할 수 있습니다.

나는 그것을 대체 할

<font size="4" face="verdana, arial,geneva"><b>THIS IS MY TITLE</b></font> 

: 같은 텍스트 인 경우 I는 다양한 명령을 시도

<font size="4" face="verdana, arial,geneva"><b><title>THIS IS MY TITLE</title></b></font> 

,하지만 작동하는 것 같다하지 않습니다. 여기에 지금까지 시도 명령을 아레 :

sed -e 's/<font size="4" face="verdana, arial,geneva"><b>\([^<]*\)<\/b><\/font>/<font size="4" face="verdana, arial,geneva"><b><title>\1<\/title><\/b><\/font>/g' 
sed -r 's/<font size="4" face="verdana, arial,geneva"><b>([^<]*)<\/b><\/font>/<font size="4" face="verdana, arial,geneva"><b><title>\1<\/title><\/b><\/font>/g' 
sed -E 's/<font size="4" face="verdana, arial,geneva"><b>([^<]*)<\/b><\/font>/<font size="4" face="verdana, arial,geneva"><b><title>\1<\/title><\/b><\/font>/g' 

답변

0

sed '/font *size *= *"4" *face/s|<b>\([^<]*\)</b>|<b><title>\1</title></b>|g' 

내 아이디어를 작동하는 것은 가능한 한 탈출을 방지하고 본 모든 '<글꼴을 변경합니다

+0

두 단계로 일치 및 대체를 파괴하는 것입니다 크기 = ..>''얼굴 '속성'에 대해서만^:) – Kent

+0

사실, 켄트! 댓글 주셔서 감사합니다. 나는 그 소식을 바로 잡았다. 어쨌든, 당신은 당신이 단지 – jpmuc

+0

과 관련이있는 라인을 편집하여 "복사 & 붙여 넣기"를 한 이유를 확인하기 위해 일치 항목을 확장 할 수 있습니다. 나는 "확신 할 수 없기"때문에. 하지만 당신 말이 맞아요, 남자는 항상 테스트하고 조금 바꿔서 다시 테스트 할 수 있습니다. :) – Kent

0

sed를 라인은 기본적으로^_^사본 & 페이스트 지어졌습니다. 그것을 시도하십시오 내게이 들어

kent$ (master|✔) echo '<font size="4" face="verdana, arial,geneva"><b>THIS IS MY TITLE</b></font>'|sed -r '[email protected](<font size="4" face="verdana, arial,geneva"><b>)([^<]*)(</b></font>)@\1<title>\2</title>\[email protected]' 
<font size="4" face="verdana, arial,geneva"><b><title>THIS IS MY TITLE</title></b></font>