我有一个html td标记中的url,需要join多行。
例:
<td> <a href="fix_detail.jsp?fix=23056&list=yes">PICTURE ROCKS</a> </td>
我需要join一切看起来像这样:
<a href="fix_detail.jsp?fix=23056&list=yes">PICTURE ROCKS</a> </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> </td>
它首先匹配“<td>”,然后开始一个循环,追加行,并在到达“</ td>”标签时终止。
保持清醒,只需使用awk:
$ cat file foo <td> <a href="fix_detail.jsp?fix=23056&list=yes">PICTURE ROCKS</a> </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> </td> bar
所有神秘的sed构造在多行上做事情在20世纪70年代中期awk被发明时就已经过时了,现在它们只被当作脑力激荡。