1

currelty 我用<以下sed命令替换所有内容

sed -e 's/\&lt;/</g''

但现在我必须排除包含<title> 确切的行我必须排除和之间的<title>文本</title>

例如。以下行与我的命令匹配,但应排除此行...

 <title>BEWEGUNGSBOX der ÖDG ab sofort &lt; erhältlich </title>

我怎样才能用 sed 解决它?我在 cygwin 中使用 sed

4

2 回答 2

0

我不喜欢使用sed处理 HTML 数据的想法。但是说,试试这个:

sed -ne '/<title>.*<\/title>/ { p; b }; /<title>/,/<\/title>/ { p; b }; s/\&lt;/</g; p' infile

<title>...</title它在同一行中查找具有两个标签的 a并在不更改的情况下打印它。否则,请使用范围在不同的行中查找这些标签。从前一个条件不成功的点开始,开始替换&lt;

于 2012-08-27T14:06:55.047 回答
0

要仅在文档正文中进行替换,您可以在 sed 中使用正则表达式范围:

sed -e '/<body/,/<\/body/ s/\&lt;/</g' input.htm
于 2012-08-27T14:04:29.207 回答