0

URL テキストを修正する必要がある HTML テキストがあります。する必要がある:

1) URL 内のテキストも小文字に変換します 2) URL 内のスペースをハイフンに変換します 3) URL から括弧を削除します

各ファイル内でこのパターンが複数発生しています。

<div class="classname"><a href="/URL"><img src="${asset.image/url}" alt="TEXT" class="another-class-name" ></a></div>

例:
このパターンを変更したい:<div class="classname"><a href="/URL-EXAMPLE-ONE"><img src="${asset.image/url}" alt="TEXT" class="another-class-name" ></a></div>

に:<div class="classname"><a href="/url-example-one)"><img src="${asset.image/url}" alt="TEXT" class="another-class-name" ></a></div>

多数のファイルがあり、ファイル内置換を実行したいと考えています。/URL-EXAMPLE-ONEスペース、括弧の任意の組み合わせも使用できます。

以前の提案から、次の SED スクリプトを使用しています。

/sw/bin/sed -e '/<div class="mk-man-logo-mod5-m"><a href="\/[A-Z -{}&]*"></ {
   h;
   s/.*<div class="mk-man-logo-mod5-m"><a href="\/\(.*\)"><img.*/\1/;
   s/\(.*\)/\L\1/;
   s/[ &]/-/g;
   s/[()]//g;
   s/<img.*//;
   x;
   s/\(.*<div class="mk-man-logo-mod5-m"><a href="\/\)\(.*\)\(<img.*\)/\1\3/;
   G;
   s/\n//;
   }' $e

しかし、私が得ている出力は、例として次のとおりです。

原文: <div class="classname"><a href="/ABC (D&E)"><img src="${asset.images/common/manufacturer_logos/medium/abb-m.gif}" alt="TEXT" class="another-classname" ></a></div>

変換されたテキスト: <div class="classname"><a href="/<img src="${asset.images/url}" alt="TEXT" class="another-classname" abc-d-ediv>

実際に欲しい: <div class="classname"><a href="/abc-d-e"><img src="${asset.images/url}" alt="TEXT" class="another-classname"></a></div>

誰かがさらに助けてくれますか? 私はこれに何時間も費やしてきました。私は SED の専門家ではありませんが、ここに近づいていると思いますが、何かが欠けています。

よろしくお願いします、アレックス

4

1 に答える 1