web-dev-qa-db-ja.com

CSVで姓名を1つに作成する方法

次のようなCSVが1つあります。

Versand Vorname;Versand-Nachname;Versand-Zusatz;Versand-Firma;Versand
Thomas         ;Lellig          ;              ;             ;Brunnenstrasse 

次のように編集したいと思います。

Versand Vorname;Versand-Nachname ;Versand-Zusatz;Versand-Firma;Versand
Thomas Lellig  ;                 ;              ;             ;Brunnenstrasse 

そのため、PowerShellを使用して姓名をマージする必要があります。

これが私のソースCSVの写真と編集されたCSVがどのように見えるかです:

Source CSV File

Edited CSV File

1
Drago

私はこれがあなたが求めているものだと信じています

C:\ Tempフォルダーにインポートとエクスポートがあります。ユースケースに合わせて変更してください。

$objs =@();
$output = Import-csv -Path C:\Temp\test.csv -Delimiter “;”| ForEach { 
$Object = New-Object PSObject -Property @{            
        'Versand Vorname'  = [String]::Concat($_.'Versand Vorname',' ',$_.'Versand-Nachname')
        'Versand-Nachname' = ''
        'Versand-Zusatz'  = $_.'Versand-Zusatz'   
        'Versand-Firma' = $_.'Versand-Firma'
        'Versand' = $_.'Versand'         
    }   
    $objs += $Object;
} 
$objs 
$objs | Export-CSv  C:\Temp\temp.csv -NoTypeInformation -Delimiter “;”

enter image description here

1
SQLTemp

ここに少し少ないコードで:

CSVを読み取り、姓と名を組み合わせ、姓の列を空にして、変更されたオブジェクトを返し、再度エクスポートする必要があります。

$SourcePath = "C:\Install\testabc.csv"
$DestinationPath = "C:\Install\testbcd.csv"

Import-Csv $SourcePath -Delimiter ";" -Encoding UTF8 | ForEach-Object {
    $_."Versand Vorname" = "{0} {1}" -f $_."Versand Vorname", $_."Versand-Nachname"
    $_."Versand-Nachname" = ""
    $_
} | Export-Csv $DestinationPath -NoTypeInformation -Force -Delimiter ";" -Encoding UTF8

引用符なしでこれが必要な場合-私が提案しないこと 一部のフィールドには引用符が必要なため 、次を使用できます:

powerShell 7以降を使用している場合は、-UseQuotes AsNeededExport-CSVに追加するだけです。

powerShell 6以下を使用している場合は、新しいファイルを作成した後でそれらを置き換えることができます。スクリプトに次の行を追加するだけです。

$File = Get-Content $DestinationPath -Encoding UTF8
$File -replace '"','' | Out-File $DestinationPath -Encoding utf8 -Force

ただし、引用符を置き換えることはお勧めしません

1
SimonS

PowerShellはありませんが、 Notepad ++ が手元にあるかもしれません。

あなたが持っている場合:

  • nP ++でCSVを開く
  • [Strg] + [H]を押して、置換ダイアログウィンドウを開きます
  • 左下隅で、モードを正規表現に設定します
  • 検索:^([^;]+);(まさにこのパターン!)
  • と置換する: $1
  • 「すべて置換」ボタンをクリックします

私のために働く、あなたも助けるかもしれない:)

0
xph