editare fisier linux

pitzy

Membru
Joined
Jan 20, 2006
Messages
31
Am un fisier excel de forma:
Coloana 1 Coloana 2 Coloana 3 Coloana 4 Coloana 5 Coloana 6
Raport 2011 Centrul de proiecte si programe 26597213 Bucuresti 19.06.2012 0
educationale si sportive pentru
copii si tineret Bucuresti
Raport 2011 DIRECTIA DE ASISTENTA 22970653 Cluj-Napoca 18.06.2012 13,22
SOCIALA SI MEDICALA


Exporata CSV si preluat in linux fisierul arata

Raport 2011;Centrul de proiecte si programe;26597213;Bucuresti;19/06/12;0
;educationale si sportive pentru;;;;
;copii si tineret Bucuresti;;;;
Raport 2011;DIRECTIA DE ASISTENTA;22970653;Cluj-Napoca;18/06/12;13,22
;SOCIALA SI MEDICALA;;;;

; - separatorul de celula

Vreau sa elimin casutele goale astfel incat fisierul sa arate asa

Raport 2011;Centrul de proiecte si programe educationale si sportive pentru copii si tineret Bucuresti;26597213;Bucuresti;19/06/12;0
Raport 2011;DIRECTIA DE ASISTENTA SOCIALA SI MEDICALA;22970653;Cluj-Napoca;18/06/12;13,22

adica celulele din coloana a doua se le imbin astfel incat informatia sa nu mai fie impartita pe mai multe randuri. NU se poate face manual pentru ca sunt peste 4000 de randuri in tabel
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
7,877
Exportat din Excel CSV il bagi prin Notepad ++, replace ;; with ; consecutiv de 2-3 ori (ca sa elimine si ;;; sau ;;;:wink: si gata, il trimiti in linux sau pe luna.
 

pitzy

Membru
Joined
Jan 20, 2006
Messages
31
Untitled.jpgpai daca elimin ";" ce apare in liniile incomplete pe coloana 2 se muta la sfarsitul liniei anterioare. eu vreau ca informatia din coloana 2 randul x sa se adauge la informatia din coloana 2 randul x-1 daca in fata ei sunt celule goale
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
7,877
Nimic nu se muta o linie mai sus, terminatorul de linie e CR/LF, nu ";".
 

pitzy

Membru
Joined
Jan 20, 2006
Messages
31
Am facut cum ai zis tu, nu se intampla nimic. Ramane aceasi situatie ca in poza atasata
Nu multitudinea de caractere ";" e problema ci cum concatenez informatia din celulele respective
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Messages
4,821
Code:
<?php
define('c',1);//Inlocuiesti "1" cu numarul coloanei problematice. Prima coloana este coloana 0.
define('input','X:\cale\catre\fisier.csv');//Sursa
define('output','X:\cale\catre\fisiser_corectat.csv');//Destinatia

$file=file(input,'r');
$out=array();
foreach($file as $line => $text){
 $cells=explode(';',trim($text));
 if($cells[0]!=''){
  $out[$line]=$cells;
  $prev=$line;}
 else $out[$prev][c].=' '.$cells[c];}
unset($file,$line,$prev,$text,$cells);
$file=fopen(output,'w');
foreach($out as $line){
 foreach($line as $cell)fwrite($file,$cell.';');
 fwrite($file,"\r\n");}
fclose($file);
echo('Done.');
?>
N-am testat, dar ar trebui sa mearga din prima.
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
7,877
Am facut cum ai zis tu, nu se intampla nimic. Ramane aceasi situatie ca in poza atasata
Nu multitudinea de caractere ";" e problema ci cum concatenez informatia din celulele respective
Daca deschizi fisierul in Notepad sunt linii distincte sau e un singur sir lung? Ce separatori de linie ai?
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
7,877
Atunci vezi ce faci la export in Excel de ajunge in halul ala.
 
Top Bottom