以下のようにcURLを使用してWebサイトからURLを抽出しています。
curl www.somesite.com | grep "<a href=.*title=" > new.txt
new.txtファイルは次のとおりです。
<a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something"> <a href="http://websitenotneeded.com" title="something NOTNEEDED">
ただし、以下の情報のみを抽出する必要があります。
<a href="http://website1.com" title="something"> <a href="http://website2.com" information="something" title="something">
divを持つ<a href
を無視しようとしています>情報が含まれ、タイトルが不要で終わる。
grepステートメントを変更するにはどうすればよいですか?
コメント
回答
私はあなたの例と説明に完全には従っていませんが、あなたのように聞こえます欲しいのはこれです:
$ grep -v "<a href=.*title=.*NOTNEEDED" sample.txt <a href="http://website1.com" title="something"> <a href="http://website1.com" information="something" title="something"> <a href="http://website2.com" title="some_other_thing"> <a href="http://website2.com" information="something" title="something">
例として:
$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt
コメント
- < a hrefセクションにクラスがあります。基本的に、出力には必要ありません。
回答
grep のマニュアルページには次のように書かれています。
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
複数の反転に正規表現を使用できます:
grep -v "red\|green\|blue"
または
grep -v red | grep -v green | grep -v blue
curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt
?