在匹配的行上替换一个或多个字符串模式

时间:2013-12-05 17:25:07

标签: regex sed

在HTML文档中,我需要将“& amp”替换为“&”在以下内容中使用sed:

<a href="/cgi-bin/_fd/fetch_doc_by_uid?db=mre_hcpcscpt&amp;uid=hcpcs33140">33140</a>
<a class="coding_reference" href="/cgi-bin/_subs/efgu?c=mre_icd9cm&amp;u=icdv58&amp;p=">V58.6</a>

还有其他一些“&amp; amp”需要保留,所以我只想在它们在href属性中时更换事件。

2 个答案:

答案 0 :(得分:0)

这为我解决了。您可以在搜索之前使用正则表达式将sed限制为目标模式并替换

cat file | sed '/href="\(\S*\)"/s/amp;//g'

答案 1 :(得分:0)

sed ': again
s/\(<[hH][rR][eE][fF]="[^&"]*\&\)amp/\1/
t again' YourFile

之后更改第一个&amp; amp

这假设,

ps:我不是关于\&amp;而不是简单的&amp;但我没有系统可以在这里测试