首页 > 解决方案 > 如何使用 grep 和 curl 获取大量 url 并返回 $url

问题描述

经过大量剪切和过滤后,我得到了一个文本文件中的 url 列表。我想将这些 url 传递给 curl 命令以卷曲文本文件中的所有 url,同时 grep 每个的输出单词的卷曲 url,如果找到匹配项,它将打印 url..

我试过这个,但它没有用!

for i in $(cat crawled.txt); do 
    curl $i >> curled.txt;
    if  grep -q "form" ; then
        echo $i;
    fi
    done

此外,如果可能的话,甚至不使用保存的 txt 文件作为 url,我想将 awk 命令的输出通过管道传输到上面的 for 循环中!那可能吗。

卷曲

grep

标签: curlgreppipecat

解决方案


首先,您需要告诉脚本要 grep 什么。您可能想要grep -q "form" curled.txt而不仅仅是grep -q "form".

其次,如果你的 URL 列表不是很大,你可以运行curl $(cat crawled.txt) > curled.txt(但是你不能用 grepcurled.txt来列出包含 的 URL form)。

最后,这是管道的方法:

#!/bin/bash

curlit()
{
    while read i; do 
        curl $i >> curled.txt;
        if  grep -q "form" curled.txt; then
            echo $i;
        fi
    done
}

input()
{
    echo 1 https://stackoverflow.com
    echo 2 https://google.com
}

input | awk '{ print $2 }' | curlit

推荐阅读