¿Windows equivalente a Linux `cat -n`?

¿Windows equivalente a Linux `cat -n`?

En Linux, puedo ver fácilmente cualquier archivo con el número de línea al lado con cat -nel comando.

sh-4.4$ cat test   
line 1             
line 2             
line 3             
sh-4.4$ 

sh-4.4$ cat test -n
     1  line 1     
     2  line 2     
     3  line 3     
sh-4.4$ 

¿Qué pasa con Windows? ¿Existe algún comando similar que produzca un resultado similar?

typees uno de los comandos de Windows para ver el contenido del archivo.

C:\>type test.txt
line 1
line 2
line 3
C:\>

Sin embargo, no hay ninguna -nopción en ello.

C:\>type /?
Displays the contents of a text file or files.

TYPE [drive:][path]filename

C:\>

Esto es lo que espero en Windows

C:\>(windows command to view and print line number) test.txt
     1  line 1     
     2  line 2     
     3  line 3     
C:\>

Respuesta1

Sin instalar herramientas de terceros, esto se puede hacer usando Powershell, pero hay un poco de complejidad en las secuencias de comandos, como se ve a continuación. Lo bueno de este script es que funcionará con cualquier comando de DOS que produzca resultados.

$yo = 1; comida para gatos.txt | % {$i++;"$($i-1) `t $_"}

Nota: Powershell tiene el catcomando, como se ve en el script, pero le falta numeración de líneas. Es un alias para el comando de PowerShell get-content.

Aquí está el resultado:

1        Apples
2        Bananas
3        Carrots

A continuación se muestra un ejemplo con un listado de directorio simplemente ejecutando direl script:

$yo = 1; directorio | % {$i++;"$($i-1) `t $_"}

Aquí está el resultado:

1        backgrounds
2        boot
3        inetpub
4        PerfLogs
5        Program Files
6        Program Files (x86)
7        Riot Games
8        Users
9        Windows
10       Reflect_Install.log

Si desea que la numeración de líneas comience en 0, establezca $i = 0


Alternativamente, puede instalar catun programa de terceros en Windows. Hay muchos puertos de comandos UNIX para Windows, comoCygwinyGnuWin32.

Después de instalar la instalación base de Cygwin:

C:\cygwin64\bin\cat -n comida.txt

Salidas:

 1  apple
 2  banana
 3  bread
 4  cake

Respuesta2

Aquí hay un equivalente de Windows de cat -n

findstr /n . "C:\Temp\myfile.txt"

Muestra /nnúmeros de línea. Es .una expresión regular que coincide incluso con una línea en blanco.

Para indicar más claramente a los lectores lo que realmente hace ese comando:

findstr.exe /n /r ".*"

información relacionada