Windows 7 中 Grep 的等效项?

Windows 7 中 Grep 的等效项?

是否有命令提示符grep适用于 Windows 7 的版本?也就是说,我想过滤掉以下命令的结果:

Bash 使用:

ls | grep root

从 Windows 命令提示符来看它会是什么?

答案1

查找字符串听起来就像你想要的。我一直用它作为 Windows 平台上的 grep 的近似等价物。

另一个例子使用管道:

C:\> dir /B | findstr /R /C:"[mp]"

答案2

有几种可能性:

  • 使用 Unix 命令的端口grep有几种选择。经常提到的是操作系统赛格威, 和工具不太为人所知,但在某些方面更好的工具是SFUA 实用工具包,运行于基于 UNIX 的应用程序子系统它随 Windows 7 Ultimate 版本和 Windows Server 2008 R2 一起提供。(对于 Windows XP,可以下载并安装UNIX 版本 3.5 的服务.) 该工具包有大量的命令行 TUI 工具,从mvdu,到 Korn 和 C shell,再到perlawk。它既有 x86-64 和 IA64 版本,也有 x86-32 版本。这些程序在 Windows 的本机正确 POSIX 环境中运行,而不是使用仿真器 DLL(例如cygwin1.dll)在 Win32 上分层。是的,该工具包有grep,以及大约 300 个其他版本。
  • grep使用人们编写和发布的众多本机 Win32 命令之一。 蒂姆·查伦修改后的 GNU grep 的原生 Win32 版本例如。还有电力GREP裸 Grep查找AstroGrep, 和dnGrep,尽管这些都是 GUI 程序而不是 TUI 程序。
  • 使用提供的findfindstr 请注意,其语法与的语法不同grep,正则表达式功能也是如此。

答案3

如果电源外壳允许使用命令

PS C:\> Get-ChildItem | Select-String root

或短

PS C:\> ls | sls root

请注意,别名sls仅从 PowerShell 版本 3.0 开始定义。您可以添加别名以减少输入:

PS C:\> New-Alias sls Select-String

要直接从 cmd 运行 PowerShell 命令,请使用

C:\>powershell -command "ls | select-string root"

答案4

如果您更愿意使用grep,而不是findstr,则有一个.exe文件版本Unx工具类,因此它是可移植的,不需要安装它,或者使用像 Cygwin 之类的东西。

相关内容