Windows下的"Unix shell" - 类似脚本

Gab*_*ona 1 unix windows shell scripting

我需要shell脚本大师的帮助.

我有一个.txt文件(日志),它跟踪几行客户端的IP地址,格式与此类似:

Line1 - Client IP [192.168.0.1] Other data
Line2 - Client IP [192.168.0.2] Other data
Line3 - Client IP [192.168.0.3] Other data
Line4 - Client IP [192.168.0.2] Other data
Line5 - Client IP [192.168.0.1] Other data
...
Run Code Online (Sandbox Code Playgroud)

我需要创建脚本:

  • 从此文件中提取IP地址
  • 对IP地址进行分组(仅报告一次相同的IP地址)
  • 输出具有生成的IP地址的文件

对于前面的示例,生成的文件将是:

192.168.0.1
192.168.0.2
192.168.0.3
Run Code Online (Sandbox Code Playgroud)

我在Windows操作系统上,但我可以使用像CygwinUnix Tools这样的工具(在Windows下提供类似Unix的命令,如grep,sort等).

没有脚本的解决方案也可能是好的.

在此先感谢您的帮助.

Ste*_*ski 6

在PowerShell中:

详细的方式 -

$regex = '(?<IPAddress>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'
get-content log.txt | where-object {if ($_ -match $regex){$matches.ipaddress}} | group-object -noelement
Run Code Online (Sandbox Code Playgroud)

更短的版本

gc log.txt | % {if ($_ -match $regex){$matches.ipaddress}} | group -n
Run Code Online (Sandbox Code Playgroud)