tags: []
使用 help Select-String -ShowWindow
命令我们可以很容易的得到一份中文的帮助文档,其中有这样两段话:
- Select-String cmdlet 在输入字符串和文件中搜索文本和文本模式。你可以像使用 UNIX 中的 Grep 和 Windows 中的 Findstr 一样来使用它。可以键入“Select-String”或其别名“sls”。
- 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 E:\sourcecode\bin\test> grep