0

我正在尝试使用 powershell 执行以下操作:我正在尝试搜索一个单词,然后一旦找到该单词,我需要向上 3 行读取字符 34 到 42 并将其打印出来。

测试文件:

  1. 我要在这里走很长一段路,我们步行步行到 yadda yadda 河。
  2. 拉拉拉拉拉——她说
  3. 滚滚滚 他说
  4. 井干了

我有什么:选择字符串 $TestFile -pattern "well" -simplematch 3{34,42}

我不知道的是:如何打印出“walk walk walk”部分。

每次打印出整行 1. 2. 和 3 时会发生什么。我只需要“walk walk walk”这一部分

如果有帮助,我将其用于日志文件。在文件中,error 一词位于错误代码下方 3 行,通常是一个字符串,位于其上方。

4

1 回答 1

2

使用上下文参数:

PS> (Get-ChildItem $TestFile | Select-String well -Context 3).Context.PreContext[-3].Substring(35,15)
walk walk walk
于 2013-02-05T11:29:39.917 回答