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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Lecture ligne n°x

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lecture ligne n°x

n°1468428
drdroopy
Posté le 31-10-2006 à 18:41:41  profilanswer
 

Salut,
Ca fait plusieurs heures que je cherche une commande que je pensais etre toute simple, dans un fichier batch je voudrais savoir comment faire pour afficher une ligne spécifique d'un fichier externe. Je voudrais afficher une ligne par rapport à son numéro. Exemple afficher ligne numero 20 du fichier. C'est peut etre simplement un parametre avec la commande cat mais je ne le trouve pas dans la man... help

mood
Publicité
Posté le 31-10-2006 à 18:41:41  profilanswer
 

n°1468432
morpheas
Posté le 31-10-2006 à 18:50:54  profilanswer
 

C'est assez simple à faire avec un awk:
 
awk -v ligne=20 ' NR ~ ligne { print $0 } ' fichier

n°1468511
drdroopy
Posté le 31-10-2006 à 23:33:17  profilanswer
 

C'est simple mais je n'etais pas pres de trouver. Merci morpheas

n°1468794
aigles
Posté le 01-11-2006 à 19:12:08  profilanswer
 

Juste une petite amélioration :

awk -v ligne=20 ' NR == ligne { print $0 ; exit} ' fichier


Il est aussi possible d'utiliser sed :

sed -n "10{p;q;}" fichier

Message cité 1 fois
Message édité par aigles le 01-11-2006 à 19:14:32

---------------
Jean Pierre.
n°1480943
bernard_bl​ack
Posté le 23-11-2006 à 18:23:47  profilanswer
 

aigles a écrit :

sed -n "10{p;q;}" fichier



 
Suffit de faire
 

sed -n 10p fichier


 
Après, plus facile à se rappeler mais plus long, y'a le bête et méchant
 

head -10 fichier | tail -1

n°1481027
aigles
Posté le 23-11-2006 à 22:11:37  profilanswer
 

bernard_black a écrit :

Suffit de faire

sed -n 10p fichier




 
C'est effectivement plus simple, mais cela à le gros inconvénient de lire le fichier jusqu'à la fin.
Si ton fichier fait un million de lignes, tu vas les lire toutes alors que tu te moques de ce qui se passe après la ligne 10.
 
Ma version affiche la ligne 10 et arrête la lecture du fichier.
Sur un tout petit fichier ça ne fait pas de différence sensible, mais sur un gros fichier l'économie est appréciable.
 


---------------
Jean Pierre.
n°1481056
matafan
Posté le 23-11-2006 à 23:35:03  profilanswer
 

aigles a écrit :

C'est effectivement plus simple, mais cela à le gros inconvénient de lire le fichier jusqu'à la fin.
Si ton fichier fait un million de lignes, tu vas les lire toutes alors que tu te moques de ce qui se passe après la ligne 10.
 
Ma version affiche la ligne 10 et arrête la lecture du fichier.
Sur un tout petit fichier ça ne fait pas de différence sensible, mais sur un gros fichier l'économie est appréciable.


sed -n '10{p;q}'


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Lecture ligne n°x

 

Sujets relatifs
comment effacer dynamiquement une ligne vide sur un fichier ?Récupérer des données de l'utilisateur en ligne de commande
[C ou C++] Lecture dans une base de donnéesBatch - Supprimer les attributs lecture seule d'une archive zip
Authentication php puis lecture flashVBS...lecture ligne à ligne
InputStreamReader et lecture de fichiers ligne par ligne[Shell] lecture d'un fichier txt ligne par ligne
lecture ligne a ligne d'un gros fichier texteLecture dans un fichier : ligne par ligne
Plus de sujets relatifs à : Lecture ligne n°x


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR