仅当匹配时,Curl / Grep 将输出保存到带有 URL 的文件中

仅当匹配时,Curl / Grep 将输出保存到带有 URL 的文件中

我只想保存输出.txt文件,前提是它与带有卷曲 URL 的 Grep 匹配。

例如我现在拥有的:

xargs -d '\n' -I LINE bash -c "curl -s -o - 'LINE/matchme!'| grep -o 'matchme!'" > saveme.txt < domain.txt

domain.txt它从文件中读取 URL ,但saveme.txt即使字符串不匹配,它也会创建 +saveme.txt如果匹配,则内部不包含卷曲 URL。

预计产出saveme.txt

https://example.com/matchme!?random=param- 匹配我!

https://example2.com/matchme! - 匹配我!

https://example3.com/matchme! - 匹配我!

我将如何构建这样的脚本?

答案1

pattern='matchme!'
while IFS= read -r domain; do
  url="$domain/matchme!"
  curl -s "$url" | grep -q "$pattern" && printf '%s - %s\n' "$url" "$pattern" >> saveme.txt
done < domain.txt

如果您正在寻找固定字符串,请添加-F到的选项。grep

相关内容