6 votes

Obtenir le dernier taux de change en utilisant la ligne de commande ?

Je cherche un moyen d'obtenir le dernier taux de change en ligne en utilisant la ligne de commande. Je veux l'utiliser avec un autre programme. Jusqu'à présent, tout ce que j'ai, c'est ça :

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

Pas mon code, trouvé sur le web.

La sortie se fait sur la console, mais j'ai besoin de la sauvegarder dans un fichier ou dans une variable dans un autre programme qui appelle cette commande. Je n'ai pas d'expérience avec wget et je n'ai pas trouvé d'autre moyen de faire ce que je veux. Existe-t-il un programme (Windows de préférence, mais *nix est acceptable) pour faire cela ou existe-t-il un moyen avec wget ?

0 votes

Cela répond-il à votre question ? Comment définir la valeur d'une variable d'environnement à la sortie d'une commande dans un fichier batch Windows ? Si vous demandez quel site web utiliser pour obtenir des taux de change, c'est hors sujet, car il s'agit d'une demande de recommandation de produit ou de service. Si vous demandez comment extraire une valeur de la réponse d'un site web, ce n'est pas clair, car vous ne montrez pas l'entrée brute ou la valeur que vous voulez extraire.

1voto

janos Points 3017

Cette commande devrait fonctionner dans (presque) tous les UNIX ou dans Git Bash sous Windows. Si vous n'avez pas wget alors vous pouvez utiliser curl à la place :

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

Vous pouvez enregistrer dans un fichier avec :

the_cmd > rate.txt

Ou variable avec :

rate=$(the_cmd)

Vous pourriez vouloir supprimer stderr des commandes pour réduire le bruit. Vous pouvez le faire en redirigeant leur stderr a /dev/null comme ceci :

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'

Je ne sais pas si vous avez besoin d'autre chose. Je ne connais pas de meilleur outil pour faire cela, ni sous Windows ni sous *nix.

1voto

Ben Collins Points 11318

Si vous pouvez trouver un site qui fournit des informations sur le forex d'une manière conviviale, vous pouvez alors vous passer de l'appel à l'aide. sed et de n'utiliser que l'option -O pour wget . En attendant, la commande que vous avez trouvée fonctionne bien avec les ports Windows de wget y sed vous n'avez qu'à faire quelques petites modifications. Tout d'abord, vous devez remplacer les guillemets simples dans l'appel à sed entre guillemets et supprimez le point-virgule de fin. Deuxièmement, vous devez rediriger la sortie finale vers un fichier ou une variable d'environnement au lieu de la console.

  • Pour la sortie console :

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g"
  • Pour la sortie du fichier (ajustez le nom du fichier et le chemin d'accès si nécessaire) :

    wget -qO- "google.com/finance/converter?a=1&from=usd&to=inr" | sed "/res/!d;s/<[^>]*>//g" > forex_%date%.log
  • Pour une sortie variable (ajustez le nom de la variable si nécessaire) :

    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

0 votes

Hi, quand j'essaie d'utiliser cette commande, elle renvoie ERROR 403 forbidden. est-il possible que maintenant (2018) google empêche les appels provenant de clients non-browser ? ce service ou un autre équivalent est-il disponible ?

1voto

w1100n Points 129

Depuis http://www.google.com/finance/converter ne fonctionne pas maintenant, remplacez-le par xe.com
La commande suivante imprimera le taux de change 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);}'

0 votes

Bienvenue sur le SU ! Je suggère de donner quelques explications, ce site essaie d'être plus qu'un forum de copier-coller de bouts de code.

0 votes

Nous recherchons des réponses longues qui fournissent des explications et un contexte. Ne vous contentez pas d'une réponse d'une ligne ; expliquez pourquoi votre réponse est correcte, idéalement en citant des exemples. Les réponses qui n'incluent pas d'explications peuvent être supprimées.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X