【问题标题】:How to add quotes and commas in powershell如何在powershell中添加引号和逗号
【发布时间】:2019-07-06 16:39:12
【问题描述】:

我有一个 CSV 文件,我只需要 1 列称为“序列号”我需要合并文本行,删除所有空格,将每一行添加到引号中并用逗号分隔。

到目前为止,我有几英里的代码可以工作,但它在末尾添加了引号,并且没有在开头添加引号。

$SerialList = import-csv .\log.csv | select -ExpandProperty Serialnumber | Out-File -FilePath .\Process.txt
(gc process.txt) | ? {$_.trim() -ne "" } | set-content process.txt
gc .\process.txt | %{$_ -replace '$','","'} | out-file process1.csv
Get-Content .\process1.csv| foreach {
$out = $out + $_
}
$out| Out-File .\file2.txt

输出:

序列号

1234

1234

4567

4567

预期输出:

"1234","1234","4567","4567"

【问题讨论】:

    标签: powershell csv powershell-2.0 powershell-3.0 comma


    【解决方案1】:

    尝试以下(PSv3+):

    (Import-Csv .\log.csv).SerialNumber -replace '^.*$', '"$&"' -join "," > .\file2.txt
    
    • (Import-Csv .\log.csv).SerialNumber 导入 CSV 文件,.SerialNumber 使用 member enumerationSerialNumber 列值提取为数组。

    • -replace '^.*$', '"$&"' 将每个数组元素包含在"..." 中。

      • Regex ^.*$ 完全匹配每个数组元素。
      • 替换表达式"$&" 将元素替换为" 字符中包含的匹配项($&)。 - 背景见this answer
    • -join ",", 作为分隔符连接生成的数组元素。

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多