입력 CSV 파일:
key,c1,c2,c3......,cn
1,car,phone,cat,.....,kite
2,abc,def,hij,.......,pot
1,yes,no,is,.........,hello
2,hello,yes,no,......,help
출력 CSV 파일:
Key,c1,c2,c3,.......,cn
1,caryes,phoneno,catis,.....,kitehello
2,abchello,defyes,hijno,....,pothelp
입력 파일에는 1,400만 줄이 있습니다. 누구든지 효율적인 방법을 제공하는 데 도움을 줄 수 있습니까? 미리 감사드립니다.
답변1
얼마나 효율적인지는 모르겠지만 각 해시 값의 각 요소에 map
문자열 연결 할당을 사용하여 익명 배열의 해시로 비슷한 작업을 수행할 수 있습니다..=
perl -F, -nle '
$k = shift @F;
map { $h{$k}[$_] .= $F[$_] } 0..$#F
}{
for $k (sort { $a <=> $b } keys %h) {
print join ",", $k, @{ $h{$k} }
}' file
key,c1,c2,c3......,cn
1,caryes,phoneno,catis,..............,kitehello
2,abchello,defyes,hijno,.............,pothelp