Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用Powershell从CSV中删除格式奇怪的IP_Bash_Powershell_Csv - Fatal编程技术网

Bash 使用Powershell从CSV中删除格式奇怪的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.

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.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 '[\[\]]'}
  • 使用导入Csv加载文件
  • 仅筛选与正则表达式匹配的记录
  • 仅获取指标值字段
  • 删除[和](要归功于@mathias-r-jessen,因为我从他的评论中借用了一种更强大的方法。)

  • -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("[.]", ".")}