「XYZ」というテキストが含まれているかどうかに応じて、WebページのURLリストを作成しようとしています。
URLの形式は次のとおりです。
https://www.website.tld/page.php?var1=???&var2=static
???は、1から始まり、エラーページ(「ERROR」というテキストを含むページ)が表示されるまで、毎回1ずつ増加する数字です。
一致するURLを出力ファイルにダンプしたいです。私はカールがそのようなURLを順次スキャンし、その出力をgrepに渡すことができることを読んだ。しかし、grepの出力後にURLを検索して保存する方法がわかりません。
答え1
以下がないと、URLを作成するのが簡単になる可能性がありますcurl
。
for ((i=1; i<1000; i++)); do
url="https://www.website.tld/page.php?var1=${i}&var2=static"
if curl -s "$url" | grep -q XYZ; then
echo "$url" >> positive-matches.txt
fi
od
答え2
私は作業スクリプトを作成しました。誰もが役立つ場合に備えて共有してください。 @nohillsideの答えが役に立ちました。
#!/bin/bash
count=1
while true
do
url="https://www.website.tld/page.php?var1=${count}&var2=static"
text=`curl -s "$url"`
if echo "$text" | grep -q "ERROR"
then
break
elif echo "$text" | grep -q "XYZ"
then
echo "$url" >> matches.txt
fi
((count++))
done