首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >powershell select-string -pattern -path在没有命中的地方查找命中。

powershell select-string -pattern -path在没有命中的地方查找命中。
EN

Stack Overflow用户
提问于 2022-03-04 09:46:47
回答 2查看 93关注 0票数 1

我想使用PS扫描一些日志文件中的错误。

代码语言:javascript
复制
select-string -pattern '[E]' -path D:\15\s\BAS\VectorNetworkAnalysis.AutomationInterfaceTests\Tests\COMTesting\PythonUnitTests\PyTestsResult*.log 

但是,尽管没有错误,PS列出了日志的每一行作为一个命中,至少那些包含"i“。我尝试了不同的变体,使用双撇号,在E之前/之后加上空格,故意添加一行包含"E“,但要么我得到一串行,要么没有。

有什么暗示吗?非常感谢。

下面是一个日志示例,包括带有有意添加的E的行

代码语言:javascript
复制
2022-03-04 09:22:26 [i] Transmission: Execution State is OK!
2022-03-04 09:22:26 [i] User range calib state is active!
2022-03-04 09:22:28 [i] **** Starting Save/Load calibration test ****
2022-03-04 09:22:29 [i] Transmission: Execution State is OK!
2022-03-04 09:22:29 [i] User range calib was saved!
2022-03-04 09:22:29 [i] User range calib was loaded!
2022-03-04 09:22:31 [i] **** Starting S11 one port meas test ****
2022-03-04 09:26:04 [i] S11OnePortMeas: Execution State is OK!
2022-03-04 09:26:04 [i] S11OnePortMeas: Number of results is OK!
2022-03-04 09:26:05 [E] **** Starting Impedance one port meas test ****
2022-03-04 09:26:06 [i] OnePortMeas: Execution State is OK!
EN

回答 2

Stack Overflow用户

发布于 2022-03-04 10:18:02

Select-String -Pattern使用regex,在regex中,括号的意思是“匹配括号中的任何字符”,因此它匹配每一行包含E的行。您可以用qwerty替换E,它将匹配"qwerty“中包含任何字母的所有行(在您的示例中是这样的)。

如果要匹配字符串,可以使用-SimpleMatch参数,它将将输入解释为字符串,并匹配包含该给定字符串的任何内容。

票数 1
EN

Stack Overflow用户

发布于 2022-03-04 12:08:33

在将正则表达式放在脚本中之前,可以使用regex101.com这样的网站来测试它们。这节省了我很多时间和精力。

(?i)\[e\][e][E]匹配。

\[e\][e]匹配。

\[E\][E]匹配。

(?i)使正则表达式大小写不敏感。正则表达式有独立于PowerShell的区分大小写的规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71349461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档