excel - 使用 Powershell 删除包含特定字符的 .CSV 文件中的行
问题描述
我收到来自系统的 .csv 格式的自动每周导出。它包含许多带有用户首字母的用户名(例如“fl”、“nk”)。他们中的一些人有他们的名字和姓氏,用逗号分隔(例如firstname.lastname)。这些是必须从 .csv 文件中删除的。
我的目标是编写一个 Powershell 脚本,该脚本删除所有包含字符“。”的行。(点),然后通过覆盖它来保存相同的 .csv 文件。
由于我对 Powershell 很陌生,因此我非常感谢您提供更详细的答案,包括潜在的代码。我尝试了来自类似问题的各种示例,我在这里找到了这些示例,但它们都不起作用和/或我收到错误消息,主要是因为我的语法不正确。
附加信息。这是表格的一部分。
我试过这段代码:
Get-Content "D:\file.csv" | Where-Object {$_ -notmatch '\.'} | Set-Content "D:\File.csv"-Force -NoTypeInformation
解决方案
正如 Mathias 所说,查看您的尝试会很有帮助,因此我们可以帮助您获得有效的结果。很容易给你这样的东西:
$csv = Import-Csv -Path C:\Temp\temp.csv -Delimiter ";"
$newCSV = @()
foreach($row in $csv){
if(!$row.username -or $row.username -notlike "*.*"){
$newCSV += $row
}
}
$newCSV | Export-Csv -Path C:\Temp\temp.csv -Delimiter ";" -NoTypeInformation
上面的代码消除了用户名字段上有一个点的行。它使用 'if(!$row.username' 部分保留空用户名的行。但我不知道这是否有帮助,因为没有示例 CSV 文件,也无法知道您尝试了什么远的 ;)
请注意,我总是更喜欢使用“;” 作为分隔符,因为在 Excel 中打开文件已经被正确分隔。如果当前文件使用 ',' 作为分隔符,则在导入 CSV 时需要更改它。
推荐阅读
- java - 在 AWS Elastic Beanstack 上部署 Node.J 应用程序时出错
- php - 如何在 php/html 的搜索结果中添加复选框
- .htaccess - 强制重定向到 HTTPS,除了一个带有 .htaccess 的目录?
- regression - Julia:如何使用 FixedEffectModels 包获得回归的残差
- python - 使用“deepcopy”后的意外行为
- vba - 如何使用 VBA 中组合框的变量分别寻址单元格编号
- html - 如何在烧瓶模板中添加引导字形图标?
- ios - 将图片添加到json?
- .htaccess - 如何通过 cpanel 中的 .htaccess 限制对我们网站的访问?
- r - 寻找 Epsilon 偏斜指数分布的 MLE