如何将CSV文件中的两个相邻列合并为一列,并用逗号分隔?(PowerShell)

如何将CSV文件中的两个相邻列合并为一列,并用逗号分隔?(PowerShell),powershell,csv,merge,Powershell,Csv,Merge,我有一个CSV文件,有两列,纬度和经度。我试图将两列合并为一列,用逗号分隔(没有空格) 输入CSV文件,前5行 latitude longitude 35.1868 -106.6652 42.3688 -83.4799 40.3926 -79.9052 40.5124 -88.9883 38.5352 -90.0006 我的目标是使用PowerShell获取此CSV并创建一个新的CSV,其中包含一列,两个值之间用逗号分隔(中间没有空格)。请参阅下面

我有一个CSV文件,有两列,纬度和经度。我试图将两列合并为一列,用逗号分隔(没有空格)

输入CSV文件,前5行

latitude    longitude
35.1868     -106.6652
42.3688     -83.4799
40.3926     -79.9052
40.5124     -88.9883
38.5352     -90.0006
我的目标是使用PowerShell获取此CSV并创建一个新的CSV,其中包含一列,两个值之间用逗号分隔(中间没有空格)。请参阅下面所需的输出

location
35.1868,-106.6652
42.3688,-83.4799
40.3926,-79.9052
40.5124,-88.9883
38.5352,-90.0006

任何帮助都将不胜感激

前十行只是在脚本中嵌入示例数据的一种方式,无需将其写入文件,然后将其读回。[咧嘴笑]

使用
Import CSV
将真实数据获取到脚本中

# fake reading in a CSV file
#    in real life, use Import-CSV
$InStuff = @'
latitude, longitude
35.1868, -106.6652
42.3688, -83.4799
40.3926, -79.9052
40.5124, -88.9883
38.5352, -90.0006
'@ | ConvertFrom-Csv

$LocationList = foreach ($IS_Item in $InStuff)
    {
    [PSCustomObject]@{
        Location = @($IS_Item.Latitude, $IS_Item.Longitude) -join ','
        }
    }

# on screen
$LocationList

# CSV file
$LocationList |
    Export-Csv -LiteralPath "$env:TEMP\JohnnyCarino_LocationList.csv" -NoTypeInformation
屏幕输出

Location         
--------         
35.1868,-106.6652
42.3688,-83.4799 
40.3926,-79.9052 
40.5124,-88.9883 
38.5352,-90.0006
CSV文件内容

"Location"
"35.1868,-106.6652"
"42.3688,-83.4799"
"40.3926,-79.9052"
"40.5124,-88.9883"
"38.5352,-90.0006"

最简单的方法是使用计算属性选择对象

Import-Csv .\input.csv | 
  Select-Object @{Name='Location';Expression={$_.latitude,$_.longitude -join ','}} |
    Export-Csv .\output.csv -NoTypeInformation

编辑 如果有其他不受合并影响的列,
查看此修改的
选择对象

Select-Object *,@{N='Location';E={$_.latitude,$_.longitude -join ','}} -Exclude latitude,longitude|

但是新列将是最后一列。

导入CSV,迭代生成的集合,构建一个新的PSCustomObject,并将源中的两个道具连接到一个新属性中。然后将其导出到新的CSV文件。这似乎涵盖了这些想法。。。[咧嘴笑]@Lee_Dailey谢谢你的回复。我知道这个概念对于更有经验的人来说非常简单。这是我正在努力解决的语法问题。您愿意根据我提供的信息编写一个示例命令吗?当然!我将在一两分钟后发布一个片段。。。[咧嘴笑]@JohnnyCarino-非常欢迎你!很高兴能帮助。。。[咧嘴笑]
Select-Object *,@{N='Location';E={$_.latitude,$_.longitude -join ','}} -Exclude latitude,longitude|