2013-08-27 2 views
0

많은 양의 데이터 행을 포함하는 CSV 파일을 자동화하려고합니다. 다음은 샘플입니다.powershell CSV의 열 결합

========================== 
    = ID = Last Name =User ID= 
    = 22 = Smith = 0077 = 
    = 22 = Smith = 0078 = 
    = 22 = Smith = 0079 = 
    = 22 = Jones = 0081 = 

목록이 계속됩니다.

내가하고 싶은 일은 Column Name을 Column Last Name과 결합하여 Powershell을 사용하여 새 CSV 파일에 넣는 것입니다. - 그러나이와

별로 행운 { ""+ $ .Last 이름} E = {$ .ID + N = 'ID'} @

: 나는 다음을 시도했다.

도움을 주시면 감사하겠습니다.

+0

너를 당신의 문제를 해결할 수 있습니까? – Mitul

답변

0

열 머리글에 공백이 있고 수정할 수있는 첫 번째 것이 좋습니다. 하지만 그 외에는 내 샘플 emp.csv 파일, 스크립트 및 솔루션으로 newemp.csv가 있습니다.

id loginid firstname lastname 
1 abc123 John patel 
2 zxy321 Kohn smith 
3 sdf120 Maun scott 
4 tiy123 Dham rye 
5 k2340 Naam mason 
6 lk10j5 Shaan kelso 
7 303sk Doug smith 

스크립트

$objs [email protected](); 
$output = Import-csv -Path C:\Scripts\so\emp.csv | ForEach { 
$Object = New-Object PSObject -Property @{    
     Computed = [String]::Concat($_.id,$_.lastname) 
     Firstname = $_.firstname    
    } 
    $objs += $Object; 
} 
$objs 
$objs | Export-CSv C:\Scripts\so\newemp.csv 

Computed Firstname 
1patel John 
2smith Kohn 
3scott Maun 
4rye Dham 
5mason Naam 
6kelso Shaan 
7smith Doug 
1
처음 compatiable 컨텐츠 CSV 만들기 시작 것

: 다음

Get-Content file.txt | 
Where-Object {$_ -match '^\s+=\s.+\s+=$'} | 
ForEach-Object { $_ -replace '^\s+=\s*|\s+=$' -replace '\s+=\s+',','} | 
ConvertFrom-Csv -Header ID,LastName,UserID 

ID LastName UserID 
-- -------- ------ 
22 Smith 0077 
22 Smith 0078 
22 Smith 0079 
22 Jones 0081 

그리고 새 열 생성 Select-Object를 사용

... 
ConvertFrom-Csv -Header ID,LastName,UserID | 
Select @{n=’ID’;e={$_.ID + '-' + $_.LastName}},UserID 

ID  UserID 
--  ------ 
22-Smith 0077 
22-Smith 0078 
22-Smith 0079 
22-Jones 0081