Obtendo a cotação do Bitcoin com SED
Nesta dica veremos como usar a combinação do
curl e
sed para obter a cotação do
Bitcoin. Usaremos a API da exchange
Binance.
A documentação da API da Binance pode ser encontrada aqui:
Pesquisando por "ticker" encontramos as seguintes informações:
- Symbol Price Ticker: GET /api/v3/ticker/price
- Parameters: symbol | STRING
Então o que queremos é a junção de:
https://api.binance.com + /api/v3/ticker/price
Podemos passar a variável "symbol" como parâmetro GET para filtrar o preço pela moeda desejada, que em nosso caso será o Bitcoin.
Primeiro passo será listar todos os tickers e descobrir quais são os referentes ao BTC.
Listar todos os tickers:
curl -s https://api.binance.com/api/v3/ticker/price
Filtrar a saída com o sed, imprimindo um por linha, somente o valor de symbol:
curl -s https://api.binance.com/api/v3/ticker/price | sed 's/symbol/\nsymbol/g' | sed 's/^symbol\":\"\([A-Z]*\).*$/\1/'
Ainda temos bastante coisa né? Na data desta dica, 841 símbolos. Vamos filtrar somente as linhas que começam com BTC:
curl -s https://api.binance.com/api/v3/ticker/price | sed 's/symbol/\nsymbol/g' | sed 's/^symbol\":\"\([A-Z]*\).*$/\1/' | sed -n '/^BTC/p'
BTCUSDT
BTCTUSD
BTCPAX
BTCUSDC
BTCUSDS
BTCBBTC
BTCBUSD
BTCNGN
BTCRUB
BTCTRY
BTCEUR
BTCZAR
BTCBKRW
BTCIDRT
BTCUPUSDT
BTCDOWNUSDT
BTCGBP
BTCUAH
Estamos chegando lá! O símbolo que queremos é o BTCUSDT. Então vamos chamar a API informando o símbolo desejado:
curl -s https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
{"symbol":"BTCUSDT","price":"9146.99000000"}
E finalmente o comando para extrair somente o preço:
curl -s https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT | sed 's/^.*price.:.\([0-9\.]*\).*$/\1/g'
9147.57000000
DICA: crie um alias chamado "bitcoin" ou nome similar para o comando acima.
Até a próxima!
Outras dicas deste autor
thefuck - seu "personal" corretor de comandos
MongoDB Community Edition 4.2 no Debian 10 Buster
Renomeando um usuário no Linux
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Converter imagens para fundo transparente via linha de comando
Leitura recomendada
Informações completas sobre os arquivos numa pasta
Expressão regular para validar um IP
Screen (janelas) no modo shell?
SED - texto para maiúsculas, minúsculas, pascal case e camel case
Criando usuários a partir de uma lista
Comentários
Nenhum coment�rio foi encontrado.