
En Linux, puedo ver fácilmente cualquier archivo con el número de línea al lado con cat -n
el 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?
type
es 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 -n
opció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 cat
comando, 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 dir
el 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 cat
un 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 /n
nú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 ".*"