Windows 相当于 Linux 的“cat -n”吗?

Windows 相当于 Linux 的“cat -n”吗?

在 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

无需安装第三方工具,可以使用 Powershell 完成此操作,但脚本编写略显复杂,如下所示。此脚本的优点在于它可以与任何产生输出的 DOS 命令配合使用。

$i = 1; 猫食.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


或者,您可以在 Windows 中安装第三方cat程序。有许多 UNIX 命令可以移植到 Windows,例如赛格威操作系统

安装 Cygwin 的基础安装后:

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

输出:

 1  apple
 2  banana
 3  bread
 4  cake

答案2

以下是 Windows 中 cat -n 的等效版本

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

显示/n行号。.是一个甚至匹配空白行的正则表达式。

为了更清楚地向读者说明该命令的实际作用:

findstr.exe /n /r ".*"

相关内容