[英]Select-String cmdlet in PowerShell. Parsing parenthesis
我将其存储在如下所示的文本文件中:
Java 8 Update 111 Java 8 Update 111 (64-bit) Java 8 Update 131 Java 8 Update 151 Java 8 Update 152
我正在使用PowerShell对这些信息进行处理,但是在第一步遇到了困难。 我正在使用Select-String
来匹配模式,但无法正常工作。
Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111 (64-bit)"
似乎不起作用,但以下内容将两者都恢复了。
Select-String "\\server\JavaVersions.txt" -Pattern "Java 8 Update 111"
有谁知道为什么带括号的那个不起作用? 是解析问题吗? 我真的需要能够先获取一个(64-bit)
然后对其单独进行操作。
您必须转义特殊的正则表达式字符。 在您的情况下,用括号括起来。
Select-String '\\server\JavaVersions.txt' -pattern "Java 8 Update 111 \(64-bit\)"
或者,使用-SimpleMatch
关闭正则表达式匹配:
Select-String '\\server\JavaVersions.txt' -Pattern 'Java 8 Update 111 (64-bit)' -SimpleMatch
作为一种替代选择,如果不需要为匹配使用正则表达式,则可以使用-SimpleMatch
参数:
Select-String '\\server\JavaVersions.txt' -SimpleMatch "Java 8 Update 111 (64-bit)"
然后,您无需进行任何正则表达式转义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.