使用FINDSTR搜索未知IP

时间:2017-05-31 21:06:42

标签: regex windows command-line findstr

我的文本文件有数百个条目,如下所示。它们大多数是成对的2个IP。有时它们会成为3个IP。我试图找到始终位于堆栈中间的第三个IP(下面的语法)。每个文件中始终有最多3个不同的IP。有些文本文件可能没有那个中间IP(它的出现非常罕见)。如果文本文件中有一个,如何编写搜索命令以查找上述堆栈中的中间IP?操作系统:Win7。

文本文件示例语法:

- saving IP addresses

* 192.168.1.1

* 111.111.222.222

- over

- saving IP addresses

* 192.168.1.1

* 11.123.11.123

* 111.111.222.222

- over

- saving IP addresses

* 192.168.1.1

* 111.111.222.222

- over

我已经尝试findstr \-.*\*.*\*.*\- pathtofile.txt如果文件中有这样的块但是它没有工作,那么它应该返回3个IP的块。

1 个答案:

答案 0 :(得分:0)

假设您的真实文件不像样本那样是双倍行距,以下将输出第一行(保存...)和匹配块的行数。你的真正问题是findstr只会输出一行,即使你跨行匹配,所以你永远不会得到整个块的输出。你需要一个更好的工具。

注意:我使用JPSoft Take Command转义字符放入CR和LF,但您也可以在实际批处理文件中创建它们,但这并不容易。

findstr /n /R saving.*^r^n.*\..*\..*\..*^r^n.*\..*\..*\..*^r^n.*\..*\..*\..*^r^n sampleIPinput.txt