使用命令行获取最新汇率?

使用命令行获取最新汇率?

我寻找一种使用命令行在线获取最新汇率的方法。我想将它与另一个程序一起使用。到目前为止,我只有这些:

wget -qO- "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" |  sed '/res/!d;s/<[^>]*>//g';

不是我的代码,是在网上找到的。

它会输出到控制台,但我需要将其保存在文件中或将调用该命令的其他程序中的变量中。我没有使用 wget 的经验,也找不到其他方法来实现我想要的效果。是否有任何程序(Windows 是首选,但 *nix 也可以接受)可以做到这一点,或者有没有使用 wget 的方法?

答案1

如果您能找到一个以自动化方式提供外汇信息的网站,那么您可以sed完全放弃调用 ,而只需使用-O开关wget。在此之前,您找到的命令在 Windows 端口上可以正常工作获得sed;您只需进行一些小调整。首先,您必须将调用中的单引号替换sed为双引号,并删除尾随的分号。其次,您需要将最终输出重定向到文件或环境变量,而不是控制台。

  • 对于控制台输出:

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g"
    
  • 对于文件输出(根据需要调整文件名和路径):

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g" > forex_%date%.log
    
  • 对于变量输出(根据需要调整变量名称):

    for /f "delims=" %%i in ('wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" ^| sed "/res/!d;s/<[^>]*>//g"') do @set forex=%%i
    

答案2

该命令应该可以在(几乎)任何 UNIX 或 Windows 中的 Git Bash 中使用。如果您没有wget,则可以改用curl

curl -L "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" | sed '/res/!d;s/<[^>]*>//g'

您可以使用以下方式保存到文件:

the_cmd > rate.txt

或者变量为:

rate=$(the_cmd)

您可能希望抑制stderr命令以减少噪音。您可以通过将其重定向到来实现这stderr一点/dev/null,如下所示:

curl -L "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" 2>/dev/null | sed '/res/!d;s/<[^>]*>//g'
wget -qO- "http://www.google.com/finance/converter?a=1&from=usd&to=inr&hl=es" 2>/dev/null | sed '/res/!d;s/<[^>]*>//g'

不确定您是否还需要其他东西。我不知道有更好的工具可以做到这一点,无论是在 Windows 还是 *nix 上。

答案3

自从http://www.google.com/finance/converter 现在不起作用,请用 xe.com 替换它
以下命令将打印 EUR/USD 汇率。

curl -s "https://www.xe.com/currencyconverter/convert/\?Amount\=1\&From\=EUR\&To\=USD"|awk -F 'EUR / USD' '{printf substr($2,14,7);}'

相关内容