我有很多大文本文件。我正在 (在 cmd.exe 中) 搜索其中的值列表,如下所示:
findstr /i /n /g:strings.txt 1\*.* >results.txt
其中 strings.txt 是包含我要查找的所有值的文件,而 1 是包含所有文本文件的文件夹。
我可以使用 findstr 找到的字符串的前一个和下一个字符串中包含有价值的信息。您能帮我编写一个脚本,让 results.txt 中每个匹配项都有 3 行吗?
答案1
Powershell。具体来说, Cmdlet-Context
的参数Select-String
将为您提供所选文本周围的上下文。
PS C:\Users\ryan> gc .\temp.txt
1
2
3
4
5
6
7
8
9
10
PS C:\Users\ryan> gc .\temp.txt | Select-String '4' -Context 3
1
2
3
> 4
5
6
7