Obtenha a taxa de câmbio mais recente usando a linha de comando?

4

Eu procuro uma maneira de obter a última taxa de câmbio online usando a linha de comando. Eu quero usá-lo com outro programa. Até agora tudo o que tenho é isto:

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

Não é o meu código, encontrado na web.

Ele será enviado para o console, mas eu preciso salvá-lo em um arquivo ou em uma variável em outro programa que chamará esse comando. Eu não tenho experiência com o wget e não encontrei outra maneira de fazer o que eu quero. Existe algum programa (o Windows é o preferido, mas o * nix é aceitável) para fazer isso ou existe alguma maneira com o wget?

    
por PrinceYann 28.12.2013 / 17:47

2 respostas

1

Se você puder encontrar um site que forneça informações de forex de maneira amigável à automação, poderá cancelar a chamada para sed e usar a opção -O para wget . Até lá, o comando encontrado funciona bem com as portas do Windows wget e sed ; você só precisa fazer alguns pequenos ajustes. Primeiro, você deve substituir as aspas simples na chamada para sed por aspas duplas e remover o ponto e vírgula à direita. Segundo, você precisa redirecionar a saída final para um arquivo ou variável de ambiente ao invés do console.

  • Para saída do console:

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g"
    
  • Para saída de arquivo (ajuste o nome do arquivo e o caminho conforme necessário):

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g" > forex_%date%.log
    
  • Para saída de variável (ajuste o nome da variável conforme necessário):

    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
    
por 29.12.2013 / 02:05
1

Esse comando deve funcionar em (quase) qualquer UNIX ou no Git Bash no Windows. Se você não tiver wget , poderá usar curl :

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

Você pode salvar em um arquivo com:

the_cmd > rate.txt

Ou variável com:

rate=$(the_cmd)

Você pode querer suprimir stderr dos comandos para reduzir o ruído. Você pode fazer isso redirecionando o stderr para /dev/null , assim:

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'

Não tenho certeza se você precisa de mais alguma coisa. Não conheço uma ferramenta melhor para fazer isso, nem no Windows nem * nix.

    
por 29.12.2013 / 00:05