[Linux-31] sed pb pour geek...

Pti-Jean jm.mongt at gmail.com
Mar 25 Mar 17:47:00 CET 2014


Le 25/03/2014 13:14, jpcas a écrit :
> En même temps avec un fichier de plus de 60 millions de lignes qui pèse
> 4,2 Go, c'est un peu normal ;-\

J'ai donc compris ce qui reste à faire: le script de la mort ki tu!!! 
;-) LoL

Le voila donc:
------------------------------------------------------------------------
$ cat script2.sh
#!/bin/sh

fichierxml=midi-pyrenees-latest.osm
recherche='"dance"'
repout="sortie2"

fichtmp="/tmp/$(mktemp osmshXXXXXX.tmp)"

mkdir $repout
numlinefin="$(cat $fichierxml | wc -l)"
numlines="0 $(cat $fichierxml | sed -n "/$recherche/=") $numlinefin"

for nlf in $numlines; do
    if [ "$nld" != "" ]; then
       head -$nlf $fichierxml | tail -$(($nlf-$nld)) > $fichtmp
       if [ "$nld" != "0" ]; then
          cat $fichtmp | sed '/<\/node>\|<\/way>/q' >> $repout/$nld.txt
       fi

       echo ligne: $nlf

       if [ "$nlf" != "$numlinefin" ]; then
          cat $fichtmp | tac | sed '/<node id=\|<way id=/q' | tac > 
$repout/$nlf.txt
       fi
    fi
    nld=$nlf
done
rm $fichtmp
------------------------------------------------------------------------


Temps d’exécution 4mn20!!!

Et le tour est joué! ;-)

JM
-- 
Chalet à vendre Vosges Le Menil 88 Cadre très joli au bord d'un étang:
http://chalet-du-ruisseau.over-blog.fr/
http://youtu.be/clNc4pXWXsI



Plus d'informations sur la liste de diffusion Linux-31