我是Shell和awk的新手。我有以下数据:
ID Lat Lon
1 20 110
2 30 120
我想让lat和很长时间调用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
此链接并将返回城市分配给我的文件?
答案 0 :(得分:1)
根据您的陈述,不完全确定您的问题,请您试试,然后让我知道吗?
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"
上面将从Input_file的第1行开始获取每行的变量,并通过获得当前行的第1和第2个字段来运行curl
命令(因为循环将逐行遍历所有行)。此外,如果curl
命令有一些输出值存储到名为value
的变量中,那么它只会打印3列(您也可以根据您的要求将它们放在输出文件中)。 / p>
如果这不符合您的要求,请在帖子中发布更多样本,并附上更多解释。