XML 데이터가 포함된 문서를 수정해야 합니다. 으로 설정할 수 없는 수정 사항이 하나 있습니다 sed
.
다음 표현식을 수정해야 합니다.
<Bild href_fmt="Bilder/Bildschirmfoto%202012-06_fmt.jpeg"
href="file:///user/folder/Desktop/Bildschirmfoto%202012-06-18%20um%2013.17.45.png"></Bild>
에게:
<a href="http://test.server.at/media/somefolder/Bildschirmfoto%202012-06_fmt.jpeg"
target="_blank"><img src="http://test.server.at/media/somefolder/Bildschirmfoto%202012-06_fmt.jpeg"
alt="" width="350" height="" /></a>
Bildschirmfoto%202012-06_fmt.jpeg
내 문제: 올바른 새 항목을 생성하기 위해 을(를) 복제할 수 없습니다 . HTML 태그가 줄 어딘가에 있으므로 전체 줄을 복제할 수 없습니다...
sed
또는 다른 Linux 명령을 사용하여 이 작업을 어떻게 수행할 수 있습니까 ?
답변1
sed 's@.*href_fmt="[^/]*/\([^"]*\)".*@<a href="http://test.server.at/media/somefolder/\1target="_blank"><img src="http://test.server.at/media/somefolder/\1" alt="" width="350" height="" /></a>@'
내부에 있는 이미지 이름을 추출해야 합니다 href_fmt="Bilder/Bildschirmfoto%202012-06_fmt.jpeg"
. 따라서 먼저 이에 대한 패턴을 작성하겠습니다.
.*href_fmt="[^/]*/\([^"]*\)".*
여기서 일치하기 .*
전의 모든 것과 일치합니다 =) dir 이름과 일치하고 이미지 이름과 일치합니다. 그룹을 만들고 나중에 줄의 나머지 부분과 일치하도록 사용하는 데 사용되며 이제 줄의 모든 내용을 다음 표현식으로 바꿉니다.href_fmt="
href_fmt="
href_fmt="
[^/]*/
Bilder/
\([^"]*\)
\(\)
\1
".*
<a href="http://test.server.at/media/somefolder/\1target="_blank"><img src="http://test.server.at/media/somefolder/\1" alt="" width="350" height="" /></a>
여기서 는 \1
위에서 언급한 이미지 이름과 같습니다.
이제 그것이 어떻게 작동하는지 분명해지기를 바랍니다.