迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 PowerShell 中合并 CSV 文件

作者:迹忆客 最近更新:2024/02/01 浏览次数:

可能需要合并多个 CSV 文件并将数据写入 PowerShell 中的文本文件。Import-CsvExport-Csv cmdlet 可用于执行此操作。


CSV 格式

有多种类型的文件格式可用于不同的目的。CSV 使用简单的结构来存储数据。

它可用于在不同程序之间交换数据。正如其名称 CSV(逗号分隔值)所暗示的,数据是逗号分隔的。

CSV 文件中存储的信息如下所示。

UserName,Identifier,First Name,Last Name
jak12,1001,Harry,Smith
Rock90,1002,Jeremy,Hamilton
Rick23,1003,Rakesh,Donas
User01,1004,Lokie,Ferguson

分隔符可以是空格、分号或任何其他字符。

让我们创建两个将使用 PowerShell 合并的 csv 文件。

 

username.csv 内容:

用户名 CSV 文件

username2.csv 内容:

用户名 2 CSV 文件


在 PowerShell 中过滤 .csv 文件

建议使用 Get-ChildItem cmdlet 来获取指定位置中的所有 .csv 文件类型。可以传递 -Filter 参数以过滤具有 .csv 扩展名的文件。

在你的情况下,.csv 文件的文件夹路径可能会有所不同。

$csvFilePath = "D:\csvfiles"
$csvFileList = Get-ChildItem $csvFilePath -Filter *.csv

让我们检查一下 $csvFileList 中的可用内容。

$csvFileList

输出:

在 PowerShell 中筛选 CSV 文件


在 PowerShell 中获取每个 .csv 文件对象

让我们用全名检索每个文件对象。Select-Object cmdlet 可用于检索具有扩展属性的每个对象。

我们将上一步的输出传递给 Select-Object 命令。

$csfFilesToImport = $csvFileList | Select-Object -ExpandProperty FullName

当你显示 $csfFilesToImport 变量时,可以看到两个 CSV 文件对象都可以使用全名。

$csfFilesToImport

输出:

在 PowerShell 中获取每个 CSV 文件对象


在 PowerShell 中合并 CSV 文件的内容

由于我们得到了所有的 CSV 文件,让我们导入每个文件的内容。这很容易将内容与公共标题行合并。

我们可以使用 Import-CSV 从管道 CSV 文件内容构建类似表格的对象。

$importedCsvFiles = $csfFilesToImport | Import-Csv
$importedCsvFiles

 

该信息已从提供的两个 CSV 文件中合并。


将合并的内容写入 PowerShell 中的文本文件

我们可以将上述对象转换为 CSV 字符串并将它们保存到文本文件中。Export-Csv cmdlet 可供使用。

我们应该使用 Append 参数来确保内容不会被替换和附加。

$importedCsvFiles | Export-Csv D:\merged.txt -NoTypeInformation -Append

输出:

这应该会创建一个名为 merged.txt 的新文本文件。该文件内容将从上述两个 CSV 文件中合并。

 

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PowerShell 中管理服务

发布时间:2024/02/08 浏览次数:116 分类:编程语言

本文将讨论 PowerShell 服务 cmdlet、如何使用它们,并开发我们的脚本以在本地或远程管理多台计算机上的服务。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便