html - 使用 sed 加入 html 行

标签 html linux sed

我在一个 html td 标记中有一个 url,该 url 分为多行,我需要加入。

例子:

<td>
<a
href="fix_detail.jsp?fix=23056&list=yes">PICTURE
ROCKS</a>&nbsp;
</td>

我需要将所有内容合并成这样:

<a href="fix_detail.jsp?fix=23056&list=yes">PICTURE ROCKS</a>&nbsp;</td>

我更愿意实现一个 sed 循环,但我不明白如何循环搜索结束的“td”标签。

sed '/<td>$/N;s/\n/ /;N;s/\n/ /;N;s/\n/ /;N;s/\n/ /'

最佳答案

保持理智,使用 awk 即可:

$ cat file
foo
<td>
<a
href="fix_detail.jsp?fix=23056&list=yes">PICTURE
ROCKS</a>&nbsp;
</td>
bar

$ awk '/<td>/{f=1} /<\/td>/{f=0} {ORS=(f?" ":"\n"); print}' file
foo
<td> <a href="fix_detail.jsp?fix=23056&list=yes">PICTURE ROCKS</a>&nbsp; </td>
bar

在 20 世纪 70 年代中期 awk 被发明时,所有用于跨多行执行操作的神秘 sed 结构都已过时,它们今天仅用作脑筋急转弯。

关于html - 使用 sed 加入 html 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30220599/

相关文章:

jquery - 基于复选框的 jQuery 验证

html - css 宽度 0 和 overflow 在 safari 中的隐藏问题

regex - 使用 grep 的乘数问题

函数内部 sed 命令中的 bash 语法错误,在命令行上工作正常

HTML5表单输入1到3位数字的模式匹配验证

JavaScript 和复选框 - 过滤

Linux 命令 "kill"可以向线程发送信号

linux - 将tomcat服务器端口更改为80不起作用

html - 使用 SED/AWK/GREP 从 html 中提取 href/url

linux - Sed 在第一次匹配之前插入