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
위에서 언급한 이미지 이름과 동일합니다 .
이제 그것이 어떻게 작동하는지 분명해졌기를 바랍니다.