PowerShell - 仅导入和拆分 csv 文件中的一列
PowerShell - importing and splitting just one column in a csv file
我有一个只包含两列的 csv(称为 'newname' 和 'name'):
新名字,姓名
newfile1, file1.pdf
newfile2, file2.txt
newfile3, file3.tif
我想做的是导入 csv 并将第 2 列(名称)拆分为两列,如下所示:
新名字,姓名
newfile1, file1, pdf
newfile2, file2, txt
newfile3, file3, tif
我相信 -Delimiter "."是执行此操作的方法,但我无法使其与 csv 导入选项一起使用。
这是一种方法:
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
$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
只为生物多样性
我有一个只包含两列的 csv(称为 'newname' 和 'name'):
新名字,姓名
newfile1, file1.pdf
newfile2, file2.txt
newfile3, file3.tif
我想做的是导入 csv 并将第 2 列(名称)拆分为两列,如下所示:
新名字,姓名
newfile1, file1, pdf
newfile2, file2, txt
newfile3, file3, tif
我相信 -Delimiter "."是执行此操作的方法,但我无法使其与 csv 导入选项一起使用。
这是一种方法:
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
$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
只为生物多样性