[bglug] Script per comparare files csv
enzo
enzo.arlati@libero.it
Ven 26 Mar 2010 23:05:13 CET
On 03/26/2010 07:21 AM, Jimmi wrote:
> 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 :)
forse dovresti spiegare meglio cosa vuoi realmente ottenere, perche' i
dati che ti fornisce il programma sembrano essere le differenze che ti
servono.
se il problema e' che ci sono troppi dati allora prova con il programma
diff standard, magari accodando una grep per filtrare meglio l' output.
--
REPLY TO: perl -e 'print qq^VVCWCQJUVD00YQVWKVBPG^^qq^3898m08970Yp584299l93^ '
WEB: http://earlati.freehostia.com/
Maggiori informazioni sulla lista
bglug