Quelqu'un peut-il me dire comment imprimer des numéros de ligne comprenant zéro à l'aide de awk?
Voici mon fichier d'entrée stackfile2.txt
quand je lance la commande awk ci-dessous, je reçois actual_output.txt
awk '{print NR,$0}' stackfile2.txt | tr " ", "," > actual_output.txt
alors que ma sortie attendue est fichier.txt
Comment imprimer les numéros de lignes commençant par zéro (0)?
NR commence à 1, alors utilisez
awk '{print NR-1 "," $0}'
Utilisation de awk.
i commence à 0, i++
incrémentera la valeur de i, mais renverra la valeur d'origine que j'ai détenue avant d'être incrémentée.
awk '{print i++ "," $0}' file
Une autre option en plus de awk est nl qui permet d’utiliser les options -v
pour définir la valeur initiale et -n <lf,rf,rz>
pour gauche, droite et droite, avec les zéros de gauche justifiés. Vous pouvez également inclure -s
pour un séparateur de champ tel que -s ","
pour une séparation par virgule entre les numéros de ligne et vos données.
Dans un environnement Unix, cela peut être fait comme
cat <infile> | ...other stuff... | nl -v 0 -n rz
ou simplement
nl -v 0 -n rz <infile>
Exemple:
echo "Here
are
some
words" > words.txt
cat words.txt | nl -v 0 -n rz
En dehors:
000000 Here
000001 are
000002 some
000003 words
Si Perl est une option, vous pouvez essayer ceci:
Perl -ne 'printf "%s,$_" , $.-1' file
$_
est la ligne$.
est le numéro de la ligne