powershell - 使用 PowerShell 删除 CSV 文件中的空行

标签 powershell

我正在尝试使用 powershell 将 REST API 导出到 CSV,代码如下

$DesiredProperties | Export-CSV -Path ".\Testrestapi.csv" -Encoding ASCII -NoTypeInformation

它将以下内容输出到 CSV:

,
"105283","TickerID"
"2365512290","TickerID"
,
,
,
,
"US594918AH79","ISIN"
,
,
,
,
"US594918AH79","ISIN"
"2121687888","TickerID"
"US594918AH79","ISIN"
,

Desired result:

"105283","TickerID"
"2365512290","TickerID"
"US594918AH79","ISIN"
"US594918AH79","ISIN"
"2121687888","TickerID"
"US594918AH79","ISIN"

I tried using

(gc file.txt) | ? {$_.Trim() -ne ""} | Set-Content file.txt

但它似乎不适用于 CSV 文件。有人可以告诉我应该在这个脚本中使用哪个命令来删除空行“,,,,,”

最佳答案

您可以使用 Where-Object { $_.PSObject.Properties.Value -ne '' } 直接清理 $DesiredProperties 对象。

示例:

Input data: "C:\Temp\Testrestapi.csv" (I use your CSV here, but you should take your export object from the REST API directly:

,
"105283","TickerID"
"2365512290","TickerID"
,
,
,
,
"US594918AH79","ISIN"
,
,
,
,
"US594918AH79","ISIN"
"2121687888","TickerID"
"US594918AH79","ISIN"
,

示例代码:

Import-Csv -Path "C:\Temp\Testrestapi.csv" -Header 'col1','col2' | Where-Object { $_.PSObject.Properties.Value -ne '' } | Export-Csv -Path "C:\Temp\Testrestapi_clean.csv" -NoTypeInformation

Output data: "C:\Temp\Testrestapi_clean.csv":

"col1","col2"
"105283","TickerID"
"2365512290","TickerID"
"US594918AH79","ISIN"
"US594918AH79","ISIN"
"2121687888","TickerID"
"US594918AH79","ISIN"

关于powershell - 使用 PowerShell 删除 CSV 文件中的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55898772/

相关文章:

arrays - 如何在 Powershell 中按对象的一个​​属性值对对象数组进行排序?

powershell - 仅从 PowerShell 中的路径获取驱动器号

windows - 我不能使用我的代码证书来签署我的 .exe 文件(EKU 过滤器)

powershell - 远程安装打印机

xml - 比较两个文件列表及其内容

iis - 如何使用 powershell 1.0 更改 IIS6 中所有站点的 IP 地址?

powershell - start-transcript 导致脚本在后台作业中失败

windows - 破坏 PS 控制台的简单 PowerShell 脚本

powershell - 自动将evtx转换为明文日志

c# - 获取 PowerShell 脚本以在 Azure 上运行 SharePoint 命令