63 votes

Ajouter des nombres au début de chaque ligne d'un fichier

Comment ajouter des chiffres au début de chaque ligne d'un fichier ?

Par exemple:

 C'est
 le texte
 du fichier.

Devient:

 000000001 C'est
 000000002 le texte
 000000003 du fichier.

121voto

septi Points 5224

N'utilisez pas de chat ou tout autre outil qui n'est pas conçu pour cela. Utilisez le programme :

nl - nombre de lignes de fichiers

Exemple:

 nl --number-format=rz --number-width=9 foobar

Parce que nl est fait pour ça ;-)

36voto

Raymond Hettinger Points 231

Les printf , NR et $0 AWK facilitent le contrôle précis et flexible du formatage :

 ~ $ awk '{printf("%010d %s\n", NR, $0)}' example.txt
0000000001 This is
0000000002 the text
0000000003 from the file.

32voto

sarnold Points 62720

Vous recherchez la commande nl(1) :

 $ nl -nrz -w9  /etc/passwd
000000001   root:x:0:0:root:/root:/bin/bash
000000002   daemon:x:1:1:daemon:/usr/sbin:/bin/sh
000000003   bin:x:2:2:bin:/bin:/bin/sh
...

-w9 demande des nombres de neuf chiffres ; -nrz demande que les nombres soient formatés justifiés à droite avec un remplissage de zéro.

8voto

egorulz Points 652

L'option la plus simple et la plus simple est

 awk '{print NR,$0}' file

Voir le commentaire ci-dessus pour savoir pourquoi nl n'est pas vraiment la meilleure option.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X