将多个curl输出和名称文件保存为当前日期/时间

时间:2019-01-07 11:55:48

标签: bash

我需要将以下curl输出保存在一个名为当前日期+时间的文本文件中。

btcusd=$(curl -s "https://api.coinbase.com/v2/prices/spot?currency=USD" | egrep -o '"amount":"[0-9]+(\.)?([0-9]{0,7}")?' | sed 's/"amount"://' | sed 's/\"//g')
usdgbp=$(curl -s "https://forex.1forge.com/1.0.3/quotes?pairs=USDGBP&api_key=XXXXXX" | egrep -o '"price":[0-9]+(\.)?([0-9]{0,5})?' | sed 's/"price"://' | sed 's/\"//g')

以上仅输出btc / usd和usd / gbp的价格,所有不需要的数据已被排除。

理想情况下,当我运行bash脚本时,将创建一个名为“ ddmmyy-hhmmss.txt”的新txt文件,其中包含2行数据,每个价格一行。

EG:

07/01 / 2019-115557.txt

  
    

4017.89

         

0.7845

  

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以仅将输出重定向到文件。首先将目标文件名存储在变量中。然后运行您的第一个命令,将其输出重定向到该文件。请注意,单个>会覆盖文件中的所有内容(如果存在)。双>>将命令的输出附加到现有文件。

FILE_NAME=`date +"%d%m%Y-%H%M%S"`.txt
curl -s "https://api.coinbase.com/v2/prices/spot?currency=USD" | egrep -o '"amount":"[0-9]+(\.)?([0-9]{0,7}")?' | sed 's/"amount"://' | sed 's/\"//g' > $FILE_NAME
curl -s "https://forex.1forge.com/1.0.3/quotes?pairs=USDGBP&api_key=XXXXXX" | egrep -o '"price":[0-9]+(\.)?([0-9]{0,5})?' | sed 's/"price"://' | sed 's/\"//g' >> $FILE_NAME