Lecture ligne n°x - Shell/Batch - Programmation
Marsh Posté le 31-10-2006 à 18:50:54
C'est assez simple à faire avec un awk:
awk -v ligne=20 ' NR ~ ligne { print $0 } ' fichier
Marsh Posté le 31-10-2006 à 23:33:17
C'est simple mais je n'etais pas pres de trouver. Merci morpheas
Marsh Posté le 01-11-2006 à 19:12:08
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 |
Marsh Posté le 23-11-2006 à 18:23:47
aigles a écrit :
|
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 |
Marsh Posté le 23-11-2006 à 22:11:37
bernard_black a écrit : Suffit de faire
|
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.
Marsh Posté le 23-11-2006 à 23:35:03
aigles a écrit : C'est effectivement plus simple, mais cela à le gros inconvénient de lire le fichier jusqu'à la fin. |
sed -n '10{p;q}' |
Marsh Posté le 31-10-2006 à 18:41:41
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