如何在powershell中添加引号和逗号
How to add quotes and commas in powershell
我有一个 CSV 文件,其中我只需要 1 个 Column Called "SerialNumber" 我需要合并文本行,删除任何空白 space,将每一行添加到引号中并用逗号分隔。
到目前为止,我有好几英里的代码都可以运行,但它在末尾添加了引号,而没有在开头添加引号。
$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
输出:
SerialNumber
1234
1234
4567
4567
预期输出:
"1234","1234","4567","4567"
尝试以下 (PSv3+):
(Import-Csv .\log.csv).SerialNumber -replace '^.*$', '"$&"' -join "," > .\file2.txt
(Import-Csv .\log.csv).SerialNumber
导入 CSV 文件,.SerialNumber
使用 member-access enumeration 将 SerialNumber
列值提取为数组。
-replace '^.*$', '"$&"'
将每个数组元素包含在 "..."
.
中
- Regex
^.*$
完全匹配每个数组元素。
- 替换表达式
"$&"
将元素替换为包含在 "
个字符中的匹配项 ($&
)。 - 有关背景,请参阅
-join ","
以 ,
作为分隔符连接生成的数组元素。
我有一个 CSV 文件,其中我只需要 1 个 Column Called "SerialNumber" 我需要合并文本行,删除任何空白 space,将每一行添加到引号中并用逗号分隔。
到目前为止,我有好几英里的代码都可以运行,但它在末尾添加了引号,而没有在开头添加引号。
$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
输出:
SerialNumber
1234
1234
4567
4567
预期输出:
"1234","1234","4567","4567"
尝试以下 (PSv3+):
(Import-Csv .\log.csv).SerialNumber -replace '^.*$', '"$&"' -join "," > .\file2.txt
(Import-Csv .\log.csv).SerialNumber
导入 CSV 文件,.SerialNumber
使用 member-access enumeration 将SerialNumber
列值提取为数组。
中-replace '^.*$', '"$&"'
将每个数组元素包含在"..."
.- Regex
^.*$
完全匹配每个数组元素。 - 替换表达式
"$&"
将元素替换为包含在"
个字符中的匹配项 ($&
)。 - 有关背景,请参阅
- Regex
-join ","
以,
作为分隔符连接生成的数组元素。