使用 "findstr" 时如何获得命令的完整输出?
How do I get the full output of a command while using "findstr"?
我试图在使用 Select-String
或 findstr
时获取命令 netstat -abn
的完整输出,但它不起作用,因为只列出了搜索字符串。我正在寻找与 grep
在 Linux 上所做的相同的行为,如果你 运行 netstat -an | grep tcp
它将 return netstat
的完整输出并将显示所有信息。
下面是 grep
的输出在 Linux 中的示例:
$ netstat -an | grep tcp
tcp 0 0 0.0.0.0:44587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 24 10.0.2.15:22 10.0.2.2:21724 ESTABLISHED
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:25 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::37224 :::* LISTEN
当我使用 findstr
或 Select-String
时,只显示名称,但没有其他信息。
这是使用 Select-String
:
时输出结果的示例
PS C:\windows\system32> netstat -abn | Select-String -Pattern "phpstorm64"
[phpstorm64.exe]
[phpstorm64.exe]
[phpstorm64.exe]
这是使用 findstr
(使用我为其创建的别名)时输出的示例:
PS C:\windows\system32> New-Alias grep findstr
PS C:\windows\system32> netstat -abn | grep "phpstorm64"
[phpstorm64.exe]
[phpstorm64.exe]
[phpstorm64.exe]
这是一个示例,说明当您单独 运行 命令 netstat -abn
而没有任何 findstr
或 Select-String
:
时输出的样子
PS C:\windows\system32> netstat -abn
Active Connections
Proto Local Address Foreign Address State
[VBoxHeadless.exe]
TCP 0.0.0.0:9001 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:10137 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:20080 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:33060 0.0.0.0:0 LISTENING
[VBoxHeadless.exe]
TCP 10.188.1.98:139 0.0.0.0:0 LISTENING
这是我想通过使用 findstr
或 Select-String
实现的输出(我刚刚添加了一行,但我希望看到所有匹配 phpstorm64
字的行):
$ netstat -abn | grep "phpstorm64"
Proto Local Address Foreign Address State
TCP 0 0.0.0.0:9001 0.0.0.0 LISTENING
最后这是我使用的 PowerShell 版本:
PS C:\windows\system32> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 14393 1944
如何在管道之前显示命令的完整输出?
使用 Select-String
和 Context
参数。它允许您在匹配项之后包含前面或后面的行:
netstat -abn |Select-String -Pattern phpstorm64 -Context 0,1
这将显示每个匹配行及其之后的下一行
我试图在使用 Select-String
或 findstr
时获取命令 netstat -abn
的完整输出,但它不起作用,因为只列出了搜索字符串。我正在寻找与 grep
在 Linux 上所做的相同的行为,如果你 运行 netstat -an | grep tcp
它将 return netstat
的完整输出并将显示所有信息。
下面是 grep
的输出在 Linux 中的示例:
$ netstat -an | grep tcp
tcp 0 0 0.0.0.0:44587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 24 10.0.2.15:22 10.0.2.2:21724 ESTABLISHED
tcp 0 0 :::111 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 ::1:25 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::37224 :::* LISTEN
当我使用 findstr
或 Select-String
时,只显示名称,但没有其他信息。
这是使用 Select-String
:
PS C:\windows\system32> netstat -abn | Select-String -Pattern "phpstorm64"
[phpstorm64.exe]
[phpstorm64.exe]
[phpstorm64.exe]
这是使用 findstr
(使用我为其创建的别名)时输出的示例:
PS C:\windows\system32> New-Alias grep findstr
PS C:\windows\system32> netstat -abn | grep "phpstorm64"
[phpstorm64.exe]
[phpstorm64.exe]
[phpstorm64.exe]
这是一个示例,说明当您单独 运行 命令 netstat -abn
而没有任何 findstr
或 Select-String
:
PS C:\windows\system32> netstat -abn
Active Connections
Proto Local Address Foreign Address State
[VBoxHeadless.exe]
TCP 0.0.0.0:9001 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:10137 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:20080 0.0.0.0:0 LISTENING
[phpstorm64.exe]
TCP 0.0.0.0:33060 0.0.0.0:0 LISTENING
[VBoxHeadless.exe]
TCP 10.188.1.98:139 0.0.0.0:0 LISTENING
这是我想通过使用 findstr
或 Select-String
实现的输出(我刚刚添加了一行,但我希望看到所有匹配 phpstorm64
字的行):
$ netstat -abn | grep "phpstorm64"
Proto Local Address Foreign Address State
TCP 0 0.0.0.0:9001 0.0.0.0 LISTENING
最后这是我使用的 PowerShell 版本:
PS C:\windows\system32> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 14393 1944
如何在管道之前显示命令的完整输出?
使用 Select-String
和 Context
参数。它允许您在匹配项之后包含前面或后面的行:
netstat -abn |Select-String -Pattern phpstorm64 -Context 0,1
这将显示每个匹配行及其之后的下一行