如何使用PowerShell搜索文件夹多文件中符合最小字符要求的字符串
PowerShell 使用Select-String匹配指定行的解决方案
Select-String本身没有单独封装最小字符数匹配参数,所有匹配规则都可以通过-Pattern参数传入正则表达式实现,以下是对应需求的实现方式:
1. 匹配长度不小于16个字符的行
命令示例
# 匹配目标文件夹下所有.txt文件中,包含至少16个任意字符的行 Select-String -Path C:\目标文件夹\*.txt -Pattern '.{16,}' # 如果要求整行长度≥16,使用如下正则 Select-String -Path C:\目标文件夹\*.txt -Pattern '^.{16,}$'
2. 仅匹配纯数字且长度不小于16的字符串
命令示例
# 匹配行中存在≥16位纯数字子串的行 Select-String -Path C:\目标文件夹\*.txt -Pattern '\d{16,}' # 要求整行全部是≥16位的纯数字,使用如下正则 Select-String -Path C:\目标文件夹\*.txt -Pattern '^\d{16,}$' # 递归搜索目标文件夹下所有子文件夹的文件 Get-ChildItem -Path C:\目标文件夹 -Recurse -File | Select-String -Pattern '^\d{16,}$'
常用参数说明
^在正则中代表行的起始位置,$代表行的结束位置,按需添加即可控制是匹配整行还是行内子串- 搭配
Get-ChildItem的-Recurse参数可以实现全目录递归搜索,适合多层文件夹的场景 - 如果需要将匹配结果导出到文件,可以在命令末尾加
| Out-File C:\结果路径\result.txt
内容的提问来源于stack exchange,提问作者Alexnl
相关产品推荐
相关产品推荐

