• 如何从 PowerShell grep 搜索文本


    在这里插入图片描述
    grep 是 Linux 上功能强大的文本搜索实用程序,但在 Windows 上不可用。虽然有第三方端口和解决方案,但 PowerShell 提供了内置的等价物grep ,可以在您的脚本中完成相同的工作。

    在 PowerShell 中使用 findstr 进行 grep 搜索

    PowerShell 中有几个不同的搜索实用程序,每个都有自己的优势。最简单的是findstr,它是本机 Windows 可执行文件。这可以很好地替换 grep 在命令行中进行简单的搜索操作。例如,您可以通过管道将其输出ls 以查找匹配项。

    ls | findstr "foo"
    
    • 1

    在这里插入图片描述
    您还可以一次搜索多个单词,使用通配符匹配任何内容,并使用/R 标志传递基本的正则表达式。

    ls | findstr /R ba[az]\.txt
    
    • 1

    在这里插入图片描述
    但是,如果要显式搜索包括空格,则需要使用该/C: 标志:

    ls | findstr /C:"foo"
    
    • 1

    如果你习惯了 Linux 命令行,不想记住新命令,可以将“grep”配置为 的别名findstr,这样可以保持肌肉记忆。

    new-alias grep findstr
    
    
    • 1
    • 2

    在这里插入图片描述

    在 PowerShell 中使用 Select-String 进行 grep 搜索

    PowerShell 提供的另一种本机方法是Select-String cmdlet,它的功能与findstr.

    这意味着它将在 PowerShell 脚本中更好地工作,并且最值得注意的是将其输出作为对象返回,该对象可以由 PowerShell 漂亮地打印出来。它也更容易在命令行上使用,因为 PowerShell 的选项卡补全将与它一起使用。

    它的工作原理与 , 一样findstr,也可以使用通配符和正则表达式。

    ls | Select-String foo
    
    • 1
    ls | Select-String -Pattern <regexPattern>
    
    • 1

    在这里插入图片描述
    您可以通过Select-String 向其传递参数来使用 grep 文件内的文本-Path 。您还可以将它与从其他 cmdlet(如Get-Content.

    Select-String -Path ".\foo.txt" -Pattern ba.*
    
    • 1

    在这里插入图片描述
    如果您想在命令行中使用它,也可以将其别名为“grep”以便快速访问。

    remove-alias grep
    new-alias grep Select-String
    
    • 1
    • 2
  • 相关阅读:
    基于机器学习和OpenCV的激光雷达数据分割和分类
    压缩pdf在线工具,压缩pdf大小的软件
    我的私人笔记(安装hbase)
    【无标题】微信小程序使用npm,(以vant为例)
    AI 应用的全流程存储加速方案技术解析和实践分享
    Java数据结构与算法(最长回文子串中心扩散法)
    cfssl自签证书
    C++11:新特性(11-20)
    【excel】一些实例2
    Java高频面试题【基础篇】
  • 原文地址:https://blog.csdn.net/wlcs_6305/article/details/126284414