4

В Linux я легко могу просматривать любые файлы с номером строки рядом с ним с помощью команды 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$ 

А как насчет Windows? Есть ли подобная команда, выдающая похожий вывод?

type - это одна из команд Windows для просмотра содержимого файла.

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

Однако в нем нет опции -n .

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

TYPE [drive:][path]filename

C:\>

Это то, что я ожидаю в Windows

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

1 ответ1

2

Без установки сторонних инструментов это можно сделать с помощью Powershell, но есть небольшая сложность сценариев, как показано ниже. Что хорошо в этом сценарии, так это то, что он будет работать с любой командой DOS, которая производит вывод.

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

Примечание . В Powershell есть команда cat , как видно из сценария, но в ней отсутствует нумерация строк. Это псевдоним для команды PowerShell get-content .

Вот вывод:

1        Apples
2        Bananas
3        Carrots

Вот пример со списком каталогов, просто выполнив dir в скрипте:

$ i = 1; реж | % {$ i++; "$($ i-1)` t $ _ "}

Вот вывод:

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

Если вы хотите, чтобы нумерация строк начиналась с 0, установите $ i = 0


Кроме того, вы можете установить стороннюю программу cat в Windows. Существует множество портов команд UNIX для Windows, таких как Cygwin и GnuWin32.

После установки базы Cygwin установите:

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

Выходы:

 1  apple
 2  banana
 3  bread
 4  cake

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .