PowerShell - 导入和拆分 csv 文件中的一列

时间:2021-02-12 11:47:05

标签: powershell text split delimiter

我有一个仅包含两列(名为“newname”和“name”)的 csv:

新名字,名字

newfile1、file1.pdf

newfile2、file2.txt

newfile3、file3.tif

我想要做的是导入 csv 并将第 2 列(名称)拆分为两列,如下所示:

新名字,名字

新文件 1、文件 1、pdf

newfile2、file2、txt

newfile3、file3、tif

我相信 -Delimiter "."是这样做的方法,但我无法让它与 csv 导入选项一起使用。

2 个答案:

答案 0 :(得分:2)

这是一种方法:

Import-Csv -Path 'D:\Test\original.csv' | 
    Select-Object newname, 
                  @{Name = 'name'; Expression = {[IO.Path]::GetFileNameWithoutExtension($_.name)}},
                  @{Name = 'extension'; Expression = {[IO.Path]::GetExtension($_.name).TrimStart(".")}} |
    Export-Csv -Path 'D:\Test\updated.csv' -NoTypeInformation

结果:

newname  name  extension
-------  ----  ---------
newfile1 file1 pdf      
newfile2 file2 txt      
newfile3 file3 tif

答案 1 :(得分:0)

$csv = @"
newfile1, file1.pdf
newfile2, file2.txt
newfile3, file3.tif
"@ | ConvertFrom-Csv -Header "newFileName", "fileName"
$csv | % {
    .{[PSCustomObject]@{Name = $Args[0][0]; fileName = $Args[0][1]; ext = $Args[0][2]}} (,$_.newFileName + $_.fileName -split "\.(?!.*\.)")
} | Export-Csv d:\tmp\out.txt

只为生物多样性