Shell / awk, получить столбец 1 и 2, запустить ссылку curl, присвоить результат столбцу 3 - PullRequest
0 голосов
/ 03 июня 2018

Я новичок в Shell и awk.У меня есть данные ниже:

ID Lat Lon
1  20  110
2  30  120

Я хочу получить лат и лонг, чтобы вызвать API для определения города этого местоположения.Моя мысль - заставить Lat, Lon сделать curl http://.....lat&long=LAT,LONG..., после того как я получу город, затем назначить его в 4-й столбец.

Я попробовал код:

cat $FILENAME | head -1 | awk '{LAT=$9; LONG=$10} {LINK="$LINK_a$LAT$LINK_b$LONG$LINK_c$APIKEY}'

LINK_a, LINK_b, LINK_c и APIKEY - некоторые неизмененные строки ссылки.Мой код может вернуть мне правильную строку LINK, но как я могу curl эту ссылку и назначить город возврата для моего файла?

1 Ответ

0 голосов
/ 03 июня 2018

Не совсем уверен в вашем вопросе, поэтому, основываясь на вашем утверждении, не могли бы вы попробовать выполнить следующее и сообщить мне об этом?

while read first second
do
   if [[ $first != "ID" ]]
   then
     value=$(your curl command $first $second values.)
     if [[ -n "$value" ]]
     then
         echo "$first $second $value"
     else
         echo "No value for 3rd column here."
     fi
   fi
done < "Input_file" 

Выше вы получите переменные из каждой строки, кроме 1-й строки вашего Input_fileи выполните команду curl, имея 1-е и 2-е поля текущей строки (поскольку цикл будет проходить по всем строкам 1 на 1).Также, если у команды curl есть какое-то выходное значение, которое сохраняется в переменной с именем value, только 3 она будет печатать 3 столбца (вы можете также взять их в выходной файл согласно вашему требованию).

Если это не соответствует вашим требованиям, пожалуйста, опубликуйте больше примеров в вашем сообщении с дополнительными пояснениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...