powershell - 在 Powershell 中合并多个 CSV 文件的问题
问题描述
我在这里找到了一个漂亮的命令 - http://www.stackoverflow.com/questions/27892957/merging-multiple-csv-files-into-one-using-powershell我用来合并 CSV 文件 -
Get-ChildItem -Filter *.csv | Select-Object -ExpandProperty FullName | Import-Csv | Export-Csv .\merged\merged.csv -NoTypeInformation -Append
现在,这就像它在锡上所说的那样,并且在大多数情况下都很好用。但是,我有两个问题,我想知道是否有办法克服它们:
首先,合并的 csv 文件具有 CRLF 行结尾,我想知道如何在生成文件时将行结尾设为 LF?
此外,似乎有一些恶作剧的引号被添加/移动。举个例子:
来自初始 CSV 的示例行:
"2021-10-05"|"00:00"|"1212"|"160477"|"1.00"|"3.49"LF
合并的 CSV 中的同一行:
"2021-10-05|""00:00""|""1212""|""160477""|""1.00""|""3.49"""CRLF
所以看到第一行已经失去了它的尾引号,其他字段有双引号,并且行的末尾有一个额外的引号。我不太确定这里发生了什么,所以任何帮助将不胜感激!
解决方案
对于处理引号,“问题”的原因是您的 CSV 没有使用Import-CSV
假定的默认字段分隔符 - CSV中的C代表comma,而您正在使用竖线。将参数添加到和cmdlet。-Delimiter "|"
Import-CSV
Export-CSV
我认为您对行尾字符(CRLF vs LF)无能为力;这几乎可以肯定是依赖于操作系统的。
推荐阅读
- android - 未创建任何 Firebase 应用 - 调用 Firebase.initializeApp
- mysql - 设置外键导致(errno:150“外键约束错误形成”)
- python - 使用 python-mechanize 找不到表单名称
- python - time.sleep() 是否使 while 循环消耗更少
- google-home - 从 Google NEST 获取 auth_code 时出现“找不到要链接到 [projectname] 的设备”,有什么方法可以模拟设备?
- c# - 负载测试 - 在 Jmeter 中运行 C# selenium 脚本
- windows - 为什么 git 在 diff 视图中没有更改时显示文件已修改?
- laravel - 如何根据预定义的日期显示数据
- c++ - -fsanitize=leak 如何影响运行时性能?
- c# - 用于数据库备份的 SQL 参数化查询被 sonarqube 报告为 sql 注入