PowerShell 下的 grep —— Select-String 详解及二者对比

tags: []

使用 help Select-String -ShowWindow 命令我们可以很容易的得到一份中文的帮助文档,其中有这样两段话:

  1. Select-String cmdlet 在输入字符串和文件中搜索文本和文本模式。你可以像使用 UNIX 中的 Grep 和 Windows 中的 Findstr 一样来使用它。可以键入“Select-String”或其别名“sls”。
  2. Select-String 类似于 UNIX 中的 Grep 命令和 Windows 中的 FindStr 命令。

熟悉 Linux/Unix 的朋友们都知道,grep 命令有这样如下常见的参数:

在这里插入图片描述

本文将使用 Select-String 来对这些功能进行一一实现。

由于 grep -n 是列出每一个符合条件的行号,而 PowerShell 默认就会输出行数,这里不再提此。

递归搜索(对比 grep -r

使用 Get-ChildItem -Path 文件路径 -Recurse | select-string -pattern "模式"

例子:我在 E:\sourcecode\bin\test 有一个文件 FactoryPattern.txt 和若干目录:

E:\sourcecode\bin\test>tree /f
卷 文档 的文件夹 PATH 列表
卷序列号为 0008-09A4
E:.
│  FactoryPattern.txt
├─1
│  │  FactoryPattern1.txt
│  └─1.1
│          FactoryPattern1.1.txt
├─2
│      FactoryPattern2.txt
└─3
        FactoryPattern3.txt

用上述命令结果如下(因为我已经 cd 到此目录下了,故没指定 -Path)

PS E:\sourcecode\bin\test> Get-ChildItem -Recurse | Select-String -Pattern "干"

FactoryPattern.txt:9:mozzarella n. 意大利白色干酪
FactoryPattern.txt:11:parmesan n. 帕尔马干酪 adj. 巴马的(a hard, dry cheese used in grated form, especially on Italian
 dishes.)
FactoryPattern.txt:15:reggiano n. 干酪
1\FactoryPattern1.txt:9:mozzarella n. 意大利白色干酪
1\FactoryPattern1.txt:11:parmesan n. 帕尔马干酪 adj. 巴马的(a hard, dry cheese used in grated form, especially on Ital
ian dishes.)
1\FactoryPattern1.txt:15:reggiano n. 干酪
1\1.1\FactoryPattern1.1.txt:9:mozzarella n. 意大利白色干酪
1\1.1\FactoryPattern1.1.txt:11:parmesan n. 帕尔马干酪 adj. 巴马的(a hard, dry cheese used in grated form, especially o
n Italian dishes.)
1\1.1\FactoryPattern1.1.txt:15:reggiano n. 干酪
2\FactoryPattern2.txt:9:mozzarella n. 意大利白色干酪
2\FactoryPattern2.txt:11:parmesan n. 帕尔马干酪 adj. 巴马的(a hard, dry cheese used in grated form, especially on Ital
ian dishes.)
2\FactoryPattern2.txt:15:reggiano n. 干酪
3\FactoryPattern3.txt:9:mozzarella n. 意大利白色干酪
3\FactoryPattern3.txt:11:parmesan n. 帕尔马干酪 adj. 巴马的(a hard, dry cheese used in grated form, especially on Ital
ian dishes.)
3\FactoryPattern3.txt:15:reggiano n. 干酪

输出有点乱,看不出文件层次,不知道有没有更美观的方法, 希望有人能够给出建议。下图是 grep 的,也有点乱:

PS
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值