Shell/awk,获取第1列和第2列,运行curl链接,将结果分配给第3列

Shell/awk,获取第1列和第2列,运行curl链接,将结果分配给第3列,shell,awk,Shell,Awk,我是壳牌和awk的新手。我有以下数据: ID Lat Lon 1 20 110 2 30 120 我想获取lat和long,调用API来获取该位置的城市。 我的想法是让Lat,Lon做个卷发http://.....lat&long=LAT,LONG…,在我得到城市后,将其分配到第四列 我尝试过以下代码: cat $FILENAME | head -1 | awk '{LAT=$9; LONG=$10} {LINK="$LINK_a$LAT$LINK_b$LONG$LINK_c$APIK

我是壳牌和awk的新手。我有以下数据:

ID Lat Lon
1  20  110
2  30  120
我想获取lat和long,调用API来获取该位置的城市。 我的想法是让Lat,Lon做个卷发http://.....lat&long=LAT,LONG…,在我得到城市后,将其分配到第四列

我尝试过以下代码:

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是链接的一些未更改字符串。我的代码可以返回一个正确的链接字符串,但我如何才能卷曲此链接并将返回城市分配给我的文件?

不完全确定您的问题,因此根据您的陈述,请尝试下面的内容并让我知道好吗

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行之外的每一行获取变量,并通过当前行的第1和第2个字段运行curl命令,因为循环将逐个遍历所有行。另外,如果curl命令有一些输出值存储到名为value的变量中,那么只有它会打印3列。您也可以根据需要将它们放入输出文件中

如果这不符合您的要求,那么请在您的帖子中发布更多的样本,并提供更多的解释