Bash 使用Powershell从CSV中删除格式奇怪的IP
Grizzly Streep识别的IP、签名等在年向公众发布,我使用以下方法提取IP,与我们过去的防火墙日志进行比较Bash 使用Powershell从CSV中删除格式奇怪的IP,bash,powershell,csv,Bash,Powershell,Csv,Grizzly Streep识别的IP、签名等在年向公众发布,我使用以下方法提取IP,与我们过去的防火墙日志进行比较 cut -f1 -d',' -s JAR-16-20296A.csv |egrep ^[0-9].*\][0-9*]$|tr -d "[]"| tr '\n' ' ' 这导致输出: 128.199.108.0 89.32.40.4 146.0.74.7 89.45.67.6 91.1.1.1 62.1.1.1 5.212.1.1 1.112.1.1 42.1.1.1 43.1.
cut -f1 -d',' -s JAR-16-20296A.csv |egrep ^[0-9].*\][0-9*]$|tr -d "[]"| tr '\n' ' '
这导致输出:
128.199.108.0 89.32.40.4 146.0.74.7 89.45.67.6 91.1.1.1 62.1.1.1 5.212.1.1 1.112.1.1 42.1.1.1 43.1.1.1 41.212.1.1 1.212.1.1 46.165.197.1 207.176.226.8 66.158.142.2 103.244.164.3 115.238.95.4 103.226.132.7 5.34.150.2 217.13.56.9 147.102.10.1 103.254.108.7 103.38.193.6 85.24.197.4 202.28.194.6 122.147.230.8 65.36.205.1 128.146.176.6 69.89.191.8 186.215.192.2 140.130.213.5 203.157.155.8 46.165.230.5 50.7.176.2 51.254.215.7 51.255.33.0 69.162.139.9 88.80.7.5 89.31.57.5 91.146.121.3 109.163.234.5 109.163.234.8 163.172.29.9 185.34.33.2 185.104.120.2 185.104.120.4 185.104.120.7 193.15.16.4 198.96.155.3 217.13.197.5 109.163.234.2 109.188.125.3 109.188.125.4 109.188.125.5 109.188.125.9 173.246.103.8 178.162.205.2 204.194.29.4 37.187.239.8 37.187.247.3 64.137.178.3 92.222.88.7 94.198.100.8 94.242.57.2
如何在PowerShell中获得相同的结果 以下命令会产生类似的输出
Import-Csv '.\JAR-16-20296A.csv' |
Where-Object{$_.indicator_value -match '^[0-9].*\][0-9*]$'} |
Select-Object -ExpandProperty indicator_value |
ForEach-Object { $_ -replace '[\[\]]'}
-join((ipcsv JAR-16-20296A.csv |%INDICATOR|u VALUE |?{$|-match'^[0-9].\][0-9*]$})-替换'[\[\]]')
哇,太快了。谢谢将我的技能提升了几级。我会在$上进行筛选。键入-eq'ipv4addr'
并跳过选择对象
(ForEach Object{$\uu.indicator\u value-replace'[\[\]]}
)。@AnsgarWiechers,我不知道你将在哪里添加该筛选。你能把你的版本作为答案吗?看起来这已经足够不同了,可以保证它自己的添加了。实际上,这只是一个小小的调整。您应该使用过滤器而不是$\u。指示符\u值-匹配…
。感谢这两个不同的版本。这种比较是有益的。
$Pathfile="c:\temp\JAR-16-20296A.csv"
#explicit version
Import-Csv $Pathfile | Where INDICATOR_VALUE -Match "^[0-9].*\][0-9*]$" | Select {$_.INDICATOR_VALUE.Replace("[.]", ".")}
#short version
ipcsv $Pathfile | ? I* -Match "^[0-9].*\][0-9*]$" | % {$_.INDICATOR_VALUE.Replace("[.]", ".")}