我需要提取两个短语之间的所有网址。
user971580
问问题
1563 次
3 回答
1
sed "s:.*Today's Racing\(.*\)Tomorrow's Racing:\1:; s:a href[^\"]*.\([^\"]*\):\n=\:\1\n:g ; s:\n[^=][^\n]*::g ; :r s:^[^=][^\n]*:: ; s:^\n::; tr " FILE
You can also save this script into a file links.sed
s:.*Today's Racing\(.*\)Tomorrow's Racing:\1:
s:a href[^\"]*.\([^\"]*\):\n=\:\1\n:g
s:\n[^=][^\n]*::g
:r
s:^[^=][^\n]*::
s:^\n::
tr
and run it
sed -i -f links.sed FILE
于 2012-08-05T21:07:32.930 回答
1
tr '<' '\n' < index.html | csplit -n 2 -s - "%Today's Racing%"
csplit -n 2 -s -f /tmp/t2 /tmp/t100 "/Tomorrow's Racing/"
grep href /tmp/t200 | cut -f 2 -d '"' > url-list.txt
rm /tmp/t100 /tmp/t200 /tmp/t201
注意:这是非常不一般的。它不处理注释,只处理单行href,只处理双引号中的href,以及各种其他限制,例如它会找到所有href
s,而不仅仅是那些属于a
标签的s。
但它可能适用于你正在做的事情。
还有其他工具可以一次性完成,但这很有效。
于 2012-08-05T20:27:27.710 回答
0
只有 sed、grep 和 cut 实用程序:
sed -e 's/</\n/g' index.html |\
sed -n "/Today's Racing/,/Tomorrow's Racing/p" |\
grep href |\
cut -d' ' -f2
于 2012-08-06T07:34:03.753 回答