シェルを使ってKMLから海面気圧を抽出する

シェルを使ってKMLから海面気圧を抽出する

<Placemark>私は現在Weatherdata.kmlというkmlファイルで小規模プロジェクトを進めています。各要素の海面気圧を抽出したいと思います。私は海面気圧に関する情報を解析して、次のようなreport.csvファイルに入れようとします。そして毎回新しいラインに海面圧力を印刷します。

私はこれがうまくいくと思いますawk。これまでに試したことは次のとおりです。

 awk -F '[>,]' '/minSeaLevelPres/ {print $2}' report.csv

ただし、シェルでこのコマンドを実行すると、次の結果が表示されます。

1002</minSeaLevelPres
1002</minSeaLevelPres
1002</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1001</minSeaLevelPres
1002</minSeaLevelPres
1002</minSeaLevelPres
1003</minSeaLevelPres

私がこれを得たいとき:

1002
1002
1002
1001
1001
1001
1001
1001
1001
1001
1001
1002
1002
1003

私はそれを取り除く方法を知りません</minSeaLevelPres。誰でも助けることができますか?

以下はランドマーク要素のいくつかの例です。weatherdata.kml

 <Placemark>
        <styleUrl>#ex</styleUrl>
        <lat>19.2</lat>
        <lon>-24.1</lon>
        <stormName>NINE</stormName>
    <stormNum>10</stormNum>
    <basin>AL</basin>
        <stormType>LO</stormType>
        <intensity>20</intensity>
           <intensityMPH>23</intensityMPH>
           <intensityKPH>37</intensityKPH>
           <minSeaLevelPres>1002</minSeaLevelPres>
           <atcfdtg>2020082350</atcfdtg>
        <dtg>0000 UTC JAN 07</dtg>
       </Placemark>

ベストアンサー1

XMLを正しく処理できるツールを使用することをお勧めします。

xmlstarlet select --template --value-of '//minSeaLevelPres' -n weatherdata.kml

出力:

1002

望むより:xmlstarlet select --help

おすすめ記事