[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