2

2つのフレーズの間のすべてのURLを抽出する必要があります。

4

3 に答える 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

このスクリプトをファイル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

そしてそれを実行します

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

注:これは非常に一般的ではありません。コメントは処理せず、1行のhrefのみ、二重引用符で囲まれたhrefのみ、およびその他のさまざまな制限を処理します。たとえば、タグhrefの一部であるものだけでなく、すべてを検出します。a

しかし、それはあなたがしていることにうまくいくかもしれません。

ワンショットでそれを行うことができる他のツールがありますが、これは機能します。

于 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 に答える