Windows equivalente ao Linux 'cat -n'?

4

No Linux, posso visualizar facilmente qualquer arquivo com o número da linha ao lado dele com o comando cat -n .

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 o Windows? Existe algum comando similar produzindo saída similar?

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á nenhuma opção -n .

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

TYPE [drive:][path]filename

C:\>

Isso é o que estou esperando no Windows

C:\>(windows command to view and print line number) test.txt
     1  line 1     
     2  line 2     
     3  line 3     
C:\>
    
por Sabrina 10.03.2018 / 03:28

1 resposta

2

Sem a instalação de ferramentas de terceiros, isso pode ser feito usando o Powershell, mas há um pouco de complexidade de script, como visto abaixo. O que é legal sobre esse script é que ele funcionará com qualquer comando do DOS que produza saída.

$i = 1; cat food.txt | % {$i++;"$($i-1) 't $_"}

Observação : o Powershell tem o comando cat , como 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ório simplesmente executando dir no script:

$i = 1; dir | % {$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 de linhas comece em 0, defina $ i = 0

Como alternativa, você pode instalar o programa cat de terceiros no Windows. Existem muitas portas de comandos UNIX para o Windows, como Cygwin e GnuWin32 .

Após instalar a instalação básica do Cygwin:

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

Saídas:

 1  apple
 2  banana
 3  bread
 4  cake
    
por 10.03.2018 / 08:10