Select-PowerShell 中的字符串 cmdlet。解析括号
Select-String cmdlet in PowerShell. Parsing parenthesis
我将其存储在如下所示的文本文件中:
Java8更新111
Java8 更新 111(64 位)
Java 8 更新 131
Java 8 更新 151
Java8更新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)"
然后您不需要进行任何正则表达式转义。
我将其存储在如下所示的文本文件中:
Java8更新111 Java8 更新 111(64 位) Java 8 更新 131 Java 8 更新 151 Java8更新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)"
然后您不需要进行任何正则表达式转义。