saltos - Imprimir los números de línea comenzando en cero usando awk
para que es awk (4)
¿Alguien puede decirme cómo imprimir números de línea incluyendo cero usando awk?
Aquí está mi archivo de entrada stackfile2.txt
cuando ejecuto el siguiente comando awk, obtengo el resultado actual.txt
awk ''{print NR,$0}'' stackfile2.txt | tr " ", "," > actual_output.txt
mientras que mi salida esperada es file.txt
¿Cómo imprimo los números de línea comenzando con cero (0)?
NR comienza en 1, así que use
awk ''{print NR-1 "," $0}''
Otra opción además de awk es nl que permite opciones -v
para establecer el valor de inicio y -n <lf,rf,rz>
para izquierda, derecha y derecha con ceros a la izquierda justificados. También puede incluir -s
para un separador de campo como -s ","
para la separación de coma entre los números de línea y sus datos.
En un entorno Unix, esto se puede hacer como
cat <infile> | ...other stuff... | nl -v 0 -n rz
o simplemente
nl -v 0 -n rz <infile>
Ejemplo:
echo "Here
are
some
words" > words.txt
cat words.txt | nl -v 0 -n rz
Fuera:
000000 Here
000001 are
000002 some
000003 words
Si Perl es una opción, puede intentar esto:
perl -ne ''printf "%s,$_" , $.-1'' file
$_
es la línea
$.
es el número de línea
Usando awk.
Comienzo en 0, i++
incrementará el valor de i, pero devolverá el valor original que tenía antes de incrementarse.
awk ''{print i++ "," $0}'' file