vacia saltos recorrer rango que para ordenar manejo lineas linea imprimir con columnas campos archivos archivo awk

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