Comece com algo assim:
for zf in *.zip ; do
base=${zf/\.zip/}
echo "$zf"
unzip -p "$zf" "$base.SAFE/preview/map-overlay.kml" |
sed -ne '/<gx:/,/<\/gx:/p'
done
Isso canaliza o arquivo ... / map-overlay.kml de cada arquivo .zip para sed
, que imprime apenas as linhas entre <gx:
e </gx:
.
Como alternativa, se você quiser apenas a linha <coordinates>
, altere o script sed
para:
sed -ne '/<coordinates>/p'
No entanto, observe que, embora esses scripts sed
funcionem com seus dados de amostra, até mesmo uma extração simples de algumas linhas de um arquivo XML está sujeita a falhas se você usar expressões regulares para fazer a extração. Seria negligente da minha parte não dizer:
Não analise XML ou HTML com expressões regulares . Veja por que não funciona .
Usar xmlstarlet
seria melhor. Um script perl
ou python
, usando uma de suas bibliotecas de análise de XML, seria ainda melhor. BTW, perl
e python
também têm módulos de biblioteca para trabalhar com arquivos .zip ... então todo o trabalho poderia ser feito em qualquer uma dessas linguagens.