4

Я ищу способ получить последний обменный курс онлайн с помощью командной строки. Я хочу использовать его с другой программой. До сих пор все, что у меня есть, это:

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?

2 ответа2

1

Эта команда должна работать (почти) в любой UNIX или в Git Bash в Windows. Если у вас нет 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.

1

Если вы можете найти сайт, который предоставляет форекс информацию в удобной для автоматизации форме, то вы можете вообще отказаться от вызова sed и просто использовать ключ -O для wget . До этого команда, которую вы нашли, прекрасно работает с портами Windows wget и 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
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .