Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題151

問題151 複数サイトの情報の連携

実際に手を動かすというのが本当にできないなとつくづく思う。前にやったのにすぐ忘れてしまいがちだ。

解答例は

cat 11302.xml | grep -oP '<(station_name|lon|lat)>\K.*(?=</\1>)' | xargs -n3 sh -c 'printf "$0 "; curl -s "http://cyberjapandata2.gsi.go.jp/general/dem/scripts/getelevation.php?lon=$1&lat=$2" | jq .elevation; sleep 1' | sort -k2,2n

となる。shなどで変数を受け取るときは$0から始まるようになる。なぜかは不明。なのでここではprintf $0で駅名を出力して後のURLで標高を出力している。