[bglug] Script per comparare files csv
Jimmi
jimmi@bglug.it
Ven 26 Mar 2010 07:21:54 CET
Ciao,
ho un problemino meno banale di quanto pensavo da cui non riesco ad
uscire, e chiedo aiuto agli *Scriptman* in ascolto.
Ho un database testuale .csv aggiornato giornalmente che Drupal usa
per importare i dati. Per evitare che ogni giorno vengano processate
migliaia di righe vorrei confrontare il file con quello del giorno
precedente e produrne un terzo che contenga solo i record nuovi o
modificati.
In FreeBSD ho trovato un lussuoso programmino in Perl a nome csvdiff,
il cui output perņ č il seguente:
# csvdiff -e libro.csv -a libro1.csv
-------------------------------------------------------------------------------
Record no: 002 is different:
Actual line: 1,9788845905933,"Godel, Escher, Bach",Un'eterna
ghirlanda brillante ,Douglas R. HOFSTADTER,Adelphi,,,25,,,1,,,,,a1,,
Expected line: 1,9788845905933,"Godel, Escher, Bach",Un'eterna
ghirlanda brillante ,Douglas R. HOFSTADTER,Adelphi,,,30,,,1,,,,,a1,,
Difference in field no.: 11
Actual : 25
Expected: 30
===============================================================================
Folowing lines exists only in expected result libro.csv:
-------------------------------------------------------------------------------
Actual line 005 : 4,9788807017636,Annibale,Un viaggio,Paolo
RUMIZ,Feltrinelli,,,14,,,5,,,,,b3,,
che non mi aiuta moltissimo. Pensate che possa ricavarne qualcosa o č
meglio che riparta da capo? Nel secondo caso sapete darmi qualche
dritta sulla direzione da prendere?
Grazie :)
--
Jimmi
Maggiori informazioni sulla lista
bglug