Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3261 connectés 

 


Dernière réponse
Sujet : Script
Buchu
un peu tard mais merci beaucoup  !! :jap:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Buchu
un peu tard mais merci beaucoup  !! :jap:
superX

buchu a écrit a écrit :

bon je vais faire du concret
 
j'ai un fichier :
456546 blalalalalalalalal
456548 blbllbaaa
456549 blolboblbo
456550 balalalal
456555 blibliblbi
 
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

Buchu bon je vais faire du concret
 
j'ai un fichier :
456546 blalalalalalalalal
456548 blbllbaaa
456549 blolboblbo
456550 balalalal
456555 blibliblbi
 
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é ?
 
....

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)