我有一个文本文件,格式如下:
Demo
1
2
3
[[1]]
[[2]]
在Powershell脚本中,我试图找到字符串匹配的第一个行号[[。
$path = 'C:\Demo\Test.txt'
$pattern = "Demo"
$LineNumber = Select-String $path -Pattern $pattern | Select-Object LineNumber
以上代码将行号1返回为@ {LineNumber = 1}
但我主要感兴趣的是从[[。如何实现这一点,如果我使用[[in the pattern。
],脚本将失败请帮助,感谢所有的建议。
答案 0 :(得分:1)
默认情况下,参数-Pattern
使用正则表达式。 [
在正则表达式中有特殊含义,因此需要转义(使用\
):
Select-String input.txt -Pattern "\[\[" | Select-Object LineNumber
或者通过传递-SimpleMatch
参数来将-Pattern
视为字符串:
Select-String input.txt -Pattern "[[" -SimpleMatch | Select-Object LineNumber