我想在循环中运行一个unix命令,为每次迭代替换一个变量,然后将输出存储到一个文件中。
我将使用curl -I
抓取一系列URL的HTTP标头,然后我希望每个实例都输出到文件的新行。
我知道
我可以使用| cat
存储输出,或者将其重定向到>
的文件中,但是如何运行循环?
我有一个文件,每行有一个URL列表(或者我可以用逗号分隔它们。)
答案 0 :(得分:2)
你可以写:
while IFS= read -r url ; do
curl -I "$url"
done < urls-to-query.txt > retrieved-headers.txt
(使用内置的read
命令从标准输入读取一行 - 在这种情况下从urls-to-query.txt
重定向 - 并将其保存到变量 - 在这种情况下$url
)。
答案 1 :(得分:0)
给出文件中的URL列表:
http://url1.com
http://url2.com
你可以运行
cat inputfile | xargs curl -I&gt;&gt; OUTPUTFILE
这将读取输入文件的每一行,并将每行的结果附加到outputfile