将curl重定向到while循环

时间:2015-05-16 06:42:34

标签: linux bash curl

有没有办法将curl输出重定向到while循环?

while read l; do 
  echo 123 $l; 
done < curl 'URL'

或者有更好的方法吗?我只需要读取页面的内容并在每行上添加一些内容并将其保存到文件中。

2 个答案:

答案 0 :(得分:4)

您需要使用流程替换重定向curl的输出,如下所示:

while read -r l; do 
    echo "123 $l"
done < <(curl 'URL')

您还可以使用引用的命令替换 herestring 的输出,如下所示:

while read -r l; do 
    echo "123 $l"
done <<<"$(curl 'URL')"

(首选流程替换

注意:,要重定向到文件,您可以重定向块的输出,而不是一次重定向一行:

:>outfile    ## truncate outfile if it exists
{
    while read -r l; do 
        echo "123 $l"
    done < <(curl 'URL') 
}>outfile

答案 1 :(得分:0)

您可以使用管道运算符|

curl 'URL' | while read l; do 
   echo 123 $l >> file.txt
done