使用sedjoinhtml行

我有一个html td标记中的url,需要join多行。

例:

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

我需要join一切看起来像这样:

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

我宁愿实现一个sed循环,但我不明白如何循环searchclosures“td”标签。

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

这是一个sed一个班轮

 sed '/<td>/{:loop;/<\/td>/!{N;s/\n/ /}; t loop}' file 

输出

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

它首先匹配“<td>”,然后开始一个循环,追加行,并在到达“</ td>”标签时终止。

保持清醒,只需使用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 

所有神秘的sed构造在多行上做事情在20世纪70年代中期awk被发明时就已经过时了,现在它们只被当作脑力激荡。