Powershell 问题 - 如何从某个位置删除行?

Powershell question - How can I deleted lines from a certain position?

(抱歉我的英语不好。)

我有两个问题:

  1. 问题: 我有一个 .txt 文件并使用 powershell 在 .txt 中搜索一个词:

我的代码: Select-String .\example.txt -pattern "myword" | select -ExpandProperty line

好的很好。 PowerShell 在第 63 行找到了这个词。 在第 63 行之后,.txt 文件还有 x 行,应删除所有 (64) 行。 如何做到这一点?

get-content .\example.txt | select-string -pattern 'myword' -notmatch | Out-File .\new_example.txt

这只删除了第 63 行。但是,这应该保留,只应删除其余部分。

  1. 问题: 差不多一样。我搜索两个计数 示例:将 12 和 33 放入 .txt Powershell 发现不是 12a 和 33a。 那就对了。 Powershell 应该为它“11a 直到 56a”,并清除行“10a”和“123a”

.txt 文件示例: 10a, 11a, 21a, 20w, 32a, 56a, 123a,

这是所需的 .txt 文件: 11a, 21a, 20w, 32a, 56a,

我怎样才能做到?我非常希望你能帮助我解决这个问题。 谢谢

使用 #15136 Add -From and -To parameters to Select-String 中提出的原型:

@'
One
Two
myword
three
'@ -split '\r?\n' |SelectString -To myword

returns

One
Two

'10a', '11a', '21a', '20w', '32a', '56a', '123a' |
    SelectString -From '(?=11a)' -To '(?<=56a)'

Returns

11a
21a
20w
32a
56a

另请参阅:

  • Extract specific text and extract
  • Extract multiple lines of text between two key words from shell command in powershell
  • Need to search a line from a long config file with powershell