Ciao a tutti.
Ho un problema. Ho un file di testo diviso a blocchi. In particolare è un file in cui ridireziono ogni giorno il contenunto di una dir. Per ogni giorno ho quindi tanti blocchi nello stesso file di testo in questo formato
echo ""
date >> storico.txt
echo ""
ls -l pippo/ >> storico.txt
echo -e "\n\n\n\n"
Questo è ciò che faccio tutti i giorni. Quello che ora devo fare è vedere se ci sono delle variazioni nel contenuto di ./pippo/ tra ieri e oggi. Vi riporto un esempio con la struttura dei blocchi del file di testo:
...
Thu Nov 7 02:00:01 CET 2007
total 6889
-rw-rw-r-- 1 barzi barzi 30832 Oct 12 14:21 awdf.o
-rw-rw-r-- 1 barzi barzi 198799 Oct 19 19:03 brgwe.tgz
-rw-rw-r-- 1 barzi barzi 308443 Oct 31 10:47 cqwe.tgz
-rw-rw-r-- 1 barzi barzi 23741 Oct 23 09:52 dfqw.tgz
-rw-rw-r-- 1 barzi barzi 111707 May 30 17:57 eljeh.tgz
-rw-rw-r-- 1 barzi barzi 10620 Oct 12 14:21 fi4e.o
-rw-rw-r-- 1 barzi barzi 459078 Oct 12 14:21 gefe.o
-rw-rw-r-- 1 barzi barzi 561250 Oct 12 14:21 hey.tgz
-rw-r--r-- 1 barzi barzi 754475 Feb 26 2007 ifrt.imo
-rw-r--r-- 1 barzi barzi 1914 May 17 09:31 leqdf.tgz
-rw-rw-r-- 1 barzi barzi 9973 Feb 14 2007 mtdut.tgz
-rw-rw-r-- 1 barzi barzi 24294 Feb 14 2007 ntp.tgz
-rw-rw-r-- 1 barzi barzi 163361 Oct 8 12:22 osf.tgz
-rw-rw-r-- 1 barzi barzi 118350 Oct 12 14:18 prr.tgz
-rw-rw-r-- 1 barzi barzi 6165 Jun 26 16:05 pss.tgz
-rw-rw-r-- 1 barzi barzi 348474 Aug 22 08:22 purc.tgz
-rw-r--r-- 1 barzi barzi 2974017 Jun 28 16:20 raere.imo
-rw-rw-r-- 1 barzi barzi 85473 Mar 12 2007 rbhu.tgz
-r--r--r-- 1 barzi barzi 96 Jun 25 18:22 rorr.map
-rw-rw-r-- 1 barzi barzi 35489 Aug 24 09:18 sanhs.tgz
-rw-rw-r-- 1 barzi barzi 455256 Oct 30 17:20 snmrr.tgz
-rw-rw-r-- 1 barzi barzi 224853 Jul 11 09:38 tuiro.tgz
-rw-rw-r-- 1 barzi barzi 636 Feb 14 2007 uaerg.tgz
-rwxr-xr-x 1 barzi barzi 2567 Aug 22 17:20 upgrade.sh
drwxrwxr-x 2 barzi barzi 1024 Feb 26 2007 utils
-rw-rw-r-- 1 barzi barzi 1027 Aug 3 18:03 utils.tgz
-rw-rw-r-- 1 barzi barzi 13008 Aug 30 09:27 vuus.tgz
-rw-rw-r-- 1 barzi barzi 66880 Mar 12 2007 zfdkjò.tgz
Thu Nov 8 02:00:01 CET 2007
total 6889
-rw-rw-r-- 1 barzi barzi 30832 Oct 12 14:21 awdf.o
-rw-rw-r-- 1 barzi barzi 198799 Oct 19 19:03 brgwe.tgz
-rw-rw-r-- 1 barzi barzi 308443 Oct 31 10:47 cqwe.tgz
-rw-rw-r-- 1 barzi barzi 23741 Oct 23 09:52 dfqw.tgz
-rw-rw-r-- 1 barzi barzi 111707 May 30 17:57 eljeh.tgz
-rw-rw-r-- 1 barzi barzi 10620 Oct 12 14:21 fi4e.o
-rw-rw-r-- 1 barzi barzi 459078 Oct 12 14:21 gefe.o
-rw-rw-r-- 1 barzi barzi 561250 Oct 12 14:21 hey.tgz
-rw-r--r-- 1 barzi barzi 754475 Feb 26 2007 ifrt.imo
-rw-r--r-- 1 barzi barzi 1914 May 17 09:31 leqdf.tgz
-rw-rw-r-- 1 barzi barzi 9973 Feb 14 2007 mtdut.tgz
-rw-rw-r-- 1 barzi barzi 24294 Feb 14 2007 ntp.tgz
-rw-rw-r-- 1 barzi barzi 163361 Oct 8 12:22 osf.tgz
-rw-rw-r-- 1 barzi barzi 118350 Oct 12 14:18 prr.tgz
-rw-rw-r-- 1 barzi barzi 6165 Jun 26 16:05 pss.tgz
-rw-rw-r-- 1 barzi barzi 348474 Aug 22 08:22 purc.tgz
-rw-r--r-- 1 barzi barzi 2974017 Jun 28 16:20 raere.imo
-rw-rw-r-- 1 barzi barzi 85473 Mar 12 2007 rbhu.tgz
-r--r--r-- 1 barzi barzi 96 Jun 25 18:22 rorr.map
-rw-rw-r-- 1 barzi barzi 35489 Aug 24 09:18 sanhs.tgz
-rw-rw-r-- 1 barzi barzi 455256 Oct 30 17:20 snmrr.tgz
-rw-rw-r-- 1 barzi barzi 224853 Jul 11 09:38 tuiro.tgz
-rw-rw-r-- 1 barzi barzi 636 Feb 14 2007 uaerg.tgz
-rwxr-xr-x 1 barzi barzi 2567 Aug 22 17:20 upgrade.sh
drwxrwxr-x 2 barzi barzi 1024 Feb 26 2007 utils
-rw-rw-r-- 1 barzi barzi 1027 Aug 3 18:03 utils.tgz
-rw-rw-r-- 1 barzi barzi 13008 Aug 30 09:27 vuus.tgz
-rw-rw-r-- 1 barzi barzi 66880 Mar 12 2007 zfdkjò.tgz
bash$
Chiaramente di questi blocchi ce ne sono una quantità enorme. Quello che ora devo fare è prendere l'ultimo blocco, il penultimo e farne la differenza per vedere se ci sono variazioni riguardo:
1) il numero di file contenuti nella cartella.
2) se ci sono state variazioni su ogni singolo file.
Devo infine memorizzare tutte le date in cui sono presenti variazioni su un file di testo a parte.Come fo? Ho pensato che il cuore dll'algortimo sia un "diff" che prende i dati da qualche manipolazione con "awk".
Chi mi da una mano?Ho pensato di fare una cosa del genere:
1) Prendere l'ultimo blocco (magari selezionandolo con un separatore di riga "riga vuota" tenendo conto che tra la data e la lista dei files c'è cmq una riga vuota che va mantenuta) e ridirezionarlo su a.txt
2) Come sopra prendere il penultimo blocco e redirezionarlo verso b.txt. In questo caso la selezione è mooolto piu complessa.
3) fare il diff tra a.txt e b.txt
Almeno a naso è ciò che ho pensato. Qualcuno potrebbe aiutarmi piu in dettaglio?
Grazie :-)