Pagina 1 di 1

[RISOLTO] Bash script e rinomina interattiva sequenza file

Inviato: mar 21 lug 2020, 20:12
da Burroughs
Salve a tutti, ragazzi, volevo chiedervi una mano su come impostare un bash script, per cui passo subito a spiegarvi lo scenario.
Vivendo all'estero, registro ogni sera con uno script una nota trasmissione RAI utilizzando lo stream ufficiale (in questo caso di Rai3), che ho trovato poco tempo fa e che mi sembra di buona qualità.
Alla fine della registrazione, ottengo un file con questa struttura: posto-$(date +"%d-%m-%Y-%H-%M").ts.
Poco dopo, vado sul file e lo rinomino a manina leggermente in questo modo: 1- $(date +"%d-%m-%Y-%H-%M").ts.
Dato che mi scoccia fare 'sta menata ogni sera mi piacerebbe implementare, tramite script e relativo cronjob, una procedura che analizza il nome del file (ricordate, posto-$(date +"%d-%m-%Y-%H-%M").ts) e lo rinomina in 1- $(date +"%d-%m-%Y-%H-%M").ts o 5- $(date +"%d-%m-%Y-%H-%M").ts, se ce ne sono altri prima, in base a quanto trova all'interno della directory di riferimento.
Alla fine vorrei avere una situazione tipo:

Codice: Seleziona tutto

1- $(date +"%d-%m-%Y-%H-%M").ts
2- $(date +"%d-%m-%Y-%H-%M").ts
3- $(date +"%d-%m-%Y-%H-%M").ts
Mi date qualche indicazione???

Re: Bash script e rinomina interattiva sequenza file

Inviato: mer 22 lug 2020, 0:43
da joe
Ma se i files vengono creati solo uno ogni sera, non significa che la data nel nome non è mail uguale?
Anzi mi correggo, siccome c'è anche l'ora e il minuto dal comando date che riporti, direi che non avrai mai due files omonimi.
A quel punto sarebbe di gran lunga più facile semplicemente eliminare dal nome il prefisso "posto-", non c'è bisogno di numerarli. O no?

Casomai se vuoi disporli in ordine cronologico attraverso il nome esplicatico del file, potresti tranquillamente nominarli come:

anno-mese-giorno-ora-minuto.ts

Questo se il file lo nomini tu quando lo scarichi, non so che script usi per lo scopo, se funzionasse il download con wget:

Codice: Seleziona tutto

wget -O $(date +"%Y-%m-%d-%H-%M").ts 'http://link'
Ad ogni modo, tornando alla richiesta pedissequa:

Codice: Seleziona tutto

$ cat ren.sh
#!/bin/bash
num=$(find . -regex '^\./[0-9]*-.*'|sed 's/^\.\///'|sort|tail -n1|cut -d- -f1)
newnum=$(($num+1))
name=$(find . -iname "posto-*"|sed 's/^\.\/posto//')
mv posto$name $newnum$name

Codice: Seleziona tutto

$ ls -1
1-pippo
2-paperino
32-topolino
39-topolina
posto-quiquoqua
ren.sh

Codice: Seleziona tutto

$ ./ren.sh
$ ls -1
1-pippo
2-paperino
32-topolino
39-topolina
40-quiquoqua
ren.sh

Re: [RISOLTO] Bash script e rinomina interattiva sequenza file

Inviato: mer 22 lug 2020, 22:20
da Burroughs
Grazie, Joe, il tuo script ha funzionato a meraviglia!

Re: [RISOLTO] Bash script e rinomina interattiva sequenza file

Inviato: ven 24 lug 2020, 11:09
da joe
:thumbright: