我有一些需要修复 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>
我有许多文件,并且想做一个 infile 替换。/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 专家,但我认为我离这里很近,但遗漏了一些东西。
非常感谢,亚历克斯