带Power shell的Regex帮助-过滤并显示正确信息
我正在powershell中工作,以筛选和显示CSV中的行中带有“[N/A]”的项目 以下是CSV“摘要”选项卡下的项目 下面的代码是我的代码,但它似乎没有显示N/A项带Power shell的Regex帮助-过滤并显示正确信息,regex,powershell,csv,Regex,Powershell,Csv,我正在powershell中工作,以筛选和显示CSV中的行中带有“[N/A]”的项目 以下是CSV“摘要”选项卡下的项目 下面的代码是我的代码,但它似乎没有显示N/A项 $CSV = Import-Csv "C:\Users\DS\Desktop\Scripts\Remove NA.csv" -Header "Summary" -Delimiter : foreach ($thing in $CSV){Write-Host $thing.Summary | where {$_.Sum
$CSV = Import-Csv "C:\Users\DS\Desktop\Scripts\Remove NA.csv" -Header "Summary" -Delimiter :
foreach ($thing in $CSV){Write-Host $thing.Summary |
where {$_.Summary -contains '\[N/A\]'} }
这张表上有数千项,所以我认为正则表达式是实现这一点的方法。有没有更好的方法让它工作 虽然它本身并不违反CSV标准,但您提供的数据实际上并不是CSV。您只需使用“获取内容”,然后使用-match进行筛选:
Get-Content "C:\Users\DS\Desktop\Scripts\Remove NA.csv" | Where-Object{$_ -match ' \[N/A\] '}
保存?Excel?作为csv的工作表并不能使其成为csv—至少不是一个格式良好的csv 我将其视为纯文本文件,并将其视为纯文本文件 请参阅
get help about\u comparison\u operators
-contains不是基于正则表达式的,而是基于文本的
如果您想删除与
[N/A]
匹配的行,请将where from-contains更改为-notmatch与转义的'\[N/A\]'
我们使用的服务将其导出为CSV文件。我正在尝试用[N/A]显示值。我可以担心再导出一次。文件名Remove NA.csv
有点误导。然后将-contains
更改为-match
,那么您提供的示例数据不完整。我获取了您提供的数据,将其保存在一个文件中,使用了此代码,它在第1行和第2行(而不是第3行)显示。
Get-Content "C:\Users\DS\Desktop\Scripts\Remove NA.csv" | Where-Object{$_ -match ' \[N/A\] '}