Windows equivalente ao Linux `cat -n`?

Windows equivalente ao Linux `cat -n`?

No Linux, posso visualizar facilmente qualquer arquivo com número de linha próximo a ele com cat -no 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$ 

E quanto ao Windows? Existe algum comando semelhante produzindo saída semelhante?

typeé um dos comandos do Windows para visualizar o conteúdo do arquivo.

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

No entanto, não há -nopção nisso.

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

TYPE [drive:][path]filename

C:\>

Isso é o que espero no Windows

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

Responder1

Sem instalar ferramentas de terceiros, isso pode ser feito usando o Powershell, mas há um pouco de complexidade de script, conforme visto abaixo. O que é interessante nesse script é que ele funcionará com qualquer comando do DOS que produza saída.

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

Observação: Powershell possui o catcomando, conforme visto no script, mas não possui numeração de linha. É um alias para o comando do PowerShell get-content.

Aqui está a saída:

1        Apples
2        Bananas
3        Carrots

Aqui está um exemplo com uma listagem de diretórios simplesmente executando dirno script:

$i = 1; diretório | % {$i++;"$($i-1) `t $_"}

Aqui está a saída:

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

Se você quiser que a numeração das linhas comece em 0, defina $i = 0


Alternativamente, você pode instalar programas de terceiros catno Windows. Existem muitas portas de comandos UNIX para Windows, comoCygwineGnuWin32.

Depois de instalar a instalação básica do Cygwin:

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

Saídas:

 1  apple
 2  banana
 3  bread
 4  cake

Responder2

Aqui está um equivalente do Windows para cat -n

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

O /nmostra os números das linhas. A .é uma expressão regular que corresponde até mesmo a uma linha em branco.

Para mostrar mais claramente aos leitores o que esse comando realmente faz:

findstr.exe /n /r ".*"

informação relacionada