![在文本文件中搜索字符串并在输出中显示前一个字符串和下一个字符串(cmd.exe)](https://linux22.com/image/679588/%E5%9C%A8%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E6%90%9C%E7%B4%A2%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%B9%B6%E5%9C%A8%E8%BE%93%E5%87%BA%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%89%8D%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%E4%B8%8B%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%88cmd.exe%EF%BC%89.png)
我有很多大文本文件。我正在 (在 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