Script di comparazione file [RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Script di comparazione file [RISOLTO]

Messaggio da Burroughs »

Buona sera a tutti!
Entro direttamente nel dettaglio del mio problema, perché mi sa che è più facile fare così che spiegarlo in altro modo... :?
Allora, in una directory x ho due file, prova1.txt e prova2.txt.
Mi servirebbe uno script, che, a intervalli regolari, comparasse i due file e provvedesse a rimuovere il più vecchio, badando però (e qui sta il difficile) di non eliminare il file prova*.txt che dovesse rimanere da solo.
Ad esempio, se eseguo ogni trenta secondi il seguente script:

Codice: Seleziona tutto

#!/bin/bash
#
FILE="$(ls -tr1 prova*|head -1)"
rm "$FILE"
la prima volta verrà rimosso il file più vecchio dei due, la seconda volta l'unico eventualmente rimasto.
Ecco, come posso fare per evitare questa seconda situazione???

Grazie...
Ultima modifica di Burroughs il mar 28 giu 2016, 12:25, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script di comparazione file

Messaggio da Ansa89 »

Codice: Seleziona tutto

cd x
files=(`ls -tr prova*.txt`)
while [ -n "${files[1]}" ] ; do
    rm ${files[0]}
    files=(`ls -tr prova*.txt`)
done
Nota: ho scritto di getto, senza test approfonditi.
Ultima modifica di Ansa89 il mar 28 giu 2016, 9:04, modificato 1 volta in totale.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Script di comparazione file

Messaggio da Burroughs »

Grazie, Ansa,

Lo script, però, mi restituisce questo output di errore:

Codice: Seleziona tutto

/usr/local/bin/oldst: riga 6: EOF non atteso durante la ricerca di """
/usr/local/bin/oldst: riga 10: errore di sintassi: EOF non atteso
Cosa può essere?
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script di comparazione file

Messaggio da Ansa89 »

Colpa mia: mi ero dimenticato una parentesi graffa.

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Script di comparazione file

Messaggio da Burroughs »

Me lo potresti riscrivere quando hai un attimo?
Grazie...
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script di comparazione file

Messaggio da Ansa89 »

Avevo già editato lo script della mia prima risposta; comunque lo riporto anche qui:

Codice: Seleziona tutto

cd x
files=(`ls -tr prova*.txt`)
while [ -n "${files[1]}" ] ; do
    rm ${files[0]}
    files=(`ls -tr prova*.txt`)
done

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1076
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Script di comparazione file

Messaggio da Burroughs »

Ansa89 ha scritto:Avevo già editato lo script della mia prima risposta; comunque lo riporto anche qui: [CUT]
Ooops, scusami, stavo col cellulare, non me ne sono accorto.
Ti ringrazio, lo script "works like a charm", come dicono gli eruditi... :D
Ancora grazie e alla prossima.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
Ansa89
Iper Master
Iper Master
Messaggi: 2703
Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena

Re: Script di comparazione file [RISOLTO]

Messaggio da Ansa89 »

Sono contento che tu abbia risolto :) .

Rispondi