0

次のようなデータを含む kml ファイルを解析しています。

<when>2013-08-15T15:00:39.744-07:00</when>
<gx:coord>13.7457943 52.0683374 0</gx:coord>
<when>2013-08-15T15:01:39.868-07:00</when>
<gx:coord>15.7458125 52.063955 0</gx:coord>

実際、私はそれをbashで解析して、1つのループで取得するwhengx:coordが好きです:

私はこれまでに得ました:

cat test.kml | grep -e "gx:coord" | while read line 
do
   echo $line
done

これにより、すべての座標が得られ、いつ取得するのと同じ方法で、配列を読み取って、目的を達成できる可能性がありますが、より良い方法があるはずです:)事前にThnx。

4

1 に答える 1

4

行が整っている場合は bash を使用します。

while read WHEN && read GXCOORD; do
    echo "$WHEN : $GXCOORD"
done < test.kml

または、おそらく次のようにします。

while read WHEN && read GXCOORD; do
    echo "$WHEN : $GXCOORD"
done < <(exec grep -Fe "<when>" -e "<gx:coord>" test.kml)

また、タグを削除することもできます:

while read WHEN && read GXCOORD; do
    WHEN=${WHEN##*'<when>'} WHEN=${WHEN%%'</when>'*}
    GXCOORD=${GXCOORD##*'<gx:coord>'} GXCOORD=${GXCOORD%%'</gx:coord>'*}
    echo "$WHEN : $GXCOORD"
done < <(exec grep -Fe "<when>" -e "<gx:coord>" test.kml)
于 2013-08-27T18:28:58.043 に答える