Hi,
i have data in csv file. i want to split it base on line and column.
my code so far:
-----data---
WorkerId,share,emotions,broadcast,social,other,feedback,funding,recruit,promotion
A1LWAFOQEFVU9K,20119,20116,,20111|20112|20113|20115|20117|20120,|||||||20118|Not in English||,,,,20114
A3ACYKMVJAEAIZ,20105,20104|20106,,20102|20104|20108|20109|20110,|||||||||,20101,,,20103|20105|20107|20110
----Current output-----
A1LWAFOQEFVU9K,share,20119,emotions,20116,broadcast,,social,20111|20112|20113|20115|20117|20120,other,|||||||20118|Not in English||,feedback,,funding,,recruit,,promotion,20114
A3ACYKMVJAEAIZ,share,20105,emotions,20104|20106,broadcast,,social,20102|20104|20108|20109|20110,other,|||||||||,feedback,20101,funding,,recruit,,promotion,20103|20105|20107|20110
what i need is:
A1LWAFOQEFVU9K share 20119
A3ACYKMVJAEAIZ share 20105
A3ACYKMVJAEAIZ emotions 20104
A3ACYKMVJAEAIZ emotions 20106
A1LWAFOQEFVU9K emotions 20116
A1LWAFOQEFVU9K broadcast ## this empty, i would like remove it.
A3ACYKMVJAEAIZ broadcast ## this empty, i would like remove it.
A1LWAFOQEFVU9K social 20111
A1LWAFOQEFVU9K social 20112
A1LWAFOQEFVU9K social 20113
A1LWAFOQEFVU9K social 20115
A1LWAFOQEFVU9K social 20117
A3ACYKMVJAEAIZ social 20102
A3ACYKMVJAEAIZ social 20104
A3ACYKMVJAEAIZ social 20108
A3ACYKMVJAEAIZ social 20109
A3ACYKMVJAEAIZ social 20110
.........
Any help is much appriciated. Thank you.
i have data in csv file. i want to split it base on line and column.
my code so far:
Code:
#!/usr/bin/perl use strict;
use strict;
use warnings;
use Text::CSV_XS;
# Store our CSV file name
my $file = 'input.csv';
open( CSV_XS, '<', $file )
or die( 'Unable to open csv file ', $file, "\n" );
open MYFILE, ">output.csv";
select MYFILE;
my $csv = new Text::CSV_XS;
foreach my $line (<CSV_XS>) {
if ( $csv->parse($line) ) {
my @data = $csv->fields();
print $data[0], ',share,', $data[1], ',emotions,', $data[2],
',broadcast,', $data[3], ',social,', $data[4], ',other,', $data[5],
',feedback,', $data[6], ',funding,', $data[7], ',recruit,', $data[8],
',promotion,', $data[9], "\n";
}
else {
print 'Unable to parse CSV line: ', $line, "\n";
}
}
close(CSV_XS);
-----data---
WorkerId,share,emotions,broadcast,social,other,feedback,funding,recruit,promotion
A1LWAFOQEFVU9K,20119,20116,,20111|20112|20113|20115|20117|20120,|||||||20118|Not in English||,,,,20114
A3ACYKMVJAEAIZ,20105,20104|20106,,20102|20104|20108|20109|20110,|||||||||,20101,,,20103|20105|20107|20110
----Current output-----
A1LWAFOQEFVU9K,share,20119,emotions,20116,broadcast,,social,20111|20112|20113|20115|20117|20120,other,|||||||20118|Not in English||,feedback,,funding,,recruit,,promotion,20114
A3ACYKMVJAEAIZ,share,20105,emotions,20104|20106,broadcast,,social,20102|20104|20108|20109|20110,other,|||||||||,feedback,20101,funding,,recruit,,promotion,20103|20105|20107|20110
what i need is:
A1LWAFOQEFVU9K share 20119
A3ACYKMVJAEAIZ share 20105
A3ACYKMVJAEAIZ emotions 20104
A3ACYKMVJAEAIZ emotions 20106
A1LWAFOQEFVU9K emotions 20116
A1LWAFOQEFVU9K broadcast ## this empty, i would like remove it.
A3ACYKMVJAEAIZ broadcast ## this empty, i would like remove it.
A1LWAFOQEFVU9K social 20111
A1LWAFOQEFVU9K social 20112
A1LWAFOQEFVU9K social 20113
A1LWAFOQEFVU9K social 20115
A1LWAFOQEFVU9K social 20117
A3ACYKMVJAEAIZ social 20102
A3ACYKMVJAEAIZ social 20104
A3ACYKMVJAEAIZ social 20108
A3ACYKMVJAEAIZ social 20109
A3ACYKMVJAEAIZ social 20110
.........
Any help is much appriciated. Thank you.