et je voudrais garder que es lignes comprises entre 456548 et 456550
voiloiu
j'imagine qu'en maitrisant perl , ça pourrait être plus condensé mais voici ma version (testée) :
# on inscrit dans un fichier numero de ligne:valeur numerique
grep -n "^[0-9]\+" nbr | awk '{print $1}' > nbr2
# on parse ce fichier temporaire (nbr2) et on compare les valeurs par rapport au min et max voulus et on inscrit les 'bonnes' lignes dans un autre fichier temporaire (nbr3)
for i in `cat nbr2`;do nb=`echo $i | cut -f2 -d:`; ln=`echo $i | cut -f1 -d:`; [ $nb -gt $min ] && [ $nb -lt $max ] && echo $ln >> nbr3 ;done
# maintenant qu'on a les occurences , il faut extraire les lignes du fichier originel
for i in `cat nbr3`;do cat nbr | head -$i | tail -1 >> final; done
ca tourne mais c'est un peu 'lourd'. En perl ça doit pas etre mal je pense mais j'en ai pas les moyens :D
et je voudrais garder que es lignes comprises entre 456548 et 456550
voiloiu
arsunik
Avec n=10 :
perl -ne 'print if (/(\d+)/ && $1>10)'
edit : en supposant qu'il n'y ait qu'un seul nombre par ligne.
C'est difficile de répondre à une question qui est mal posée...
philou_a7
gawk est ton ami ;)
avec les expressions regulieres ca doit etre envisageable :D
Buchu
merci :)
mais malheureusement je n'ai pas qu'un nombre sur la ligne, j'ai aussi du texte...
j'avais pensé à un egrep '[20000-30000]' pour choper toutes les lignes entre 20000 et 30000 mais ca marche pas...
casse couille comme truc ;)
superX
in=$1
out=toto
max=50
for i in `cat $in`; do [ $i -lt $max ] && echo $i >> $out; done
djoh
buchu a écrit a écrit :
je me réexplique, dans un fichier j'ai un nombre à chaque ligne et je voudais garder uniquement les lignes contenant ce nombre inferieurs (ou supèrieur) à un nombre donné
... je sais pas si c'est plouclair
oui bah head devrait pouvoir t'aider
man head
Buchu
je me réexplique, dans un fichier j'ai un nombre à chaque ligne et je voudais garder uniquement les lignes contenant ce nombre inferieurs (ou supèrieur) à un nombre donné
... je sais pas si c'est plouclair
houplaboom42
head ?
Buchu
hellop
qq a une idée sur un egrep ou sed ou autre suprimant toutes les lignes ou un nombre est inferieur à un nombre donné ?