
No Linux, posso visualizar facilmente qualquer arquivo com número de linha próximo a ele com cat -n
o 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á -n
opçã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 cat
comando, 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 dir
no 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 cat
no 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 /n
mostra 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 ".*"