Torna indietro   Hardware Upgrade Forum > Software > Programmazione

La rivoluzione dei dati in tempo reale è in arrivo. Un assaggio a Confluent Current 2025
La rivoluzione dei dati in tempo reale è in arrivo. Un assaggio a Confluent Current 2025
Siamo andati a Londra per partecipare a Current 2025, la conferenza annuale di Confluent. Il tema al centro dell'evento era l'elaborazione dei dati in tempo reale resa possibile da Apache Kafka, una piattaforma open source pensata proprio per questo. Si è parlato di come stia cambiando la gestione dei dati in tempo reale, del perché sia importante e di quali siano le prospettive per il futuro
SAP Sapphire 2025: con Joule l'intelligenza artificiale guida app, dati e decisioni
SAP Sapphire 2025: con Joule l'intelligenza artificiale guida app, dati e decisioni
A Madrid SAP rilancia sulla visione di un ecosistema integrato dove app, dati e AI generano un circolo virtuoso capace di affrontare l’incertezza globale. Joule diventa l’interfaccia universale del business, anche oltre il perimetro SAP
Dalle radio a transistor ai Micro LED: il viaggio di Hisense da Qingdao al mondo intero
Dalle radio a transistor ai Micro LED: il viaggio di Hisense da Qingdao al mondo intero
Una delle realtà a maggiore crescita nel mondo dell'elettronica di consumo, Hisense Group, affonda le sue radici nella storica città portuale di Qingdao, famosa per la sua birra. Ed è proprio qui il centro nevralgico dell'espansione mondiale dell'azienda, che sta investendo massicciamente in infrastrutture e ricerca per consolidare ulteriormente la propria leadership tecnologica.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2009, 14:16   #1
laba
Senior Member
 
L'Avatar di laba
 
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1581
[bash] script per riniminare file con nomi casuali

Ho un lettore mp3 subacqueo che uso in piscina.
La modalità di riproduzione, però, è solo sequenziale, per cui alal lunga ascolto sempre la stessa lista.
M piacerebbe fare uno script che, lanciato, prenda i file della cartella e li rinomini a caso, lasciando solo inalterata l'estensione.

Qualcuno sa darmi un aiuto su dove trovare informazioni, o una base da cui partire? Purtroppo non mi sono mai cimentato nella programmazione..
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it
laba è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 15:09   #2
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Fammi capire, i file vengono riprodotti seguendo l'ordine del nome dei file?

Se è così basta che li ordini in maniera casuale e poi assegni loro un numero progressivo.

Non conosco la programmazione bash però ti posso suggerire una soluzione sotto windows tramite powershell.

Dettagli circa l'installazione di questo tool li trovi qui

http://www.hwupgrade.it/forum/showth...ght=powershell

e una volta scaricato il sw standalone powershell analyzer usi questo script dopo aver raggiunto la cartella che ti interessa col comando cd come col classico prompt dei comandi (attenzione che per salire di livello il comando è cd .. con uno spazio dopo cd).

Codice:
function out-random {
 $random = New-Object random
   $input | sort {$random.next()}
}
$i = 1;
gci | out-random | % {rename-Item $_.name -newname ([string]$i+"_"+$_.name) -whatif;
$i++;
}
Lo switch -whatif ti avvisa dell'operazione di rinomina che verrebbe eseguita. Nel caso sia filato tutto liscio rimuovi tale switch e rilancia il comando.

edit. Ah, non avevo pensato al padding.

Codice:
function out-random {
 $random = New-Object random
   $input | sort {$random.next()}
}
$i = 1;
gci | out-random | % {rename-Item $_.name -newname ("{0:D3}" -f $i+"_"+$_.name) -whatif;
$i++;
}
in questo modo anziche

1_nomefile, 2_nomefile ecc., avrai 001,002 e così via al fine dell'ordinamento.
[/code]

Ultima modifica di john_revelator : 01-10-2009 alle 15:39.
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 15:39   #3
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
potresti anche lasciare inalterato tutto il nome...e modificare un prefisso iniziale:

for file in `ls *.mp3`;do mv "$file" "$RANDOM"_"$file";done

oppure fai solo una cp in una cartella diversa, almeno la puoi generare altri file partendo da quelli originali.

così te li ordina per il numero RANDOM generato

-------------------------------------

se invece ti basta l'estensione...

for file in `ls *.mp3`;do mv "$file" "$RANDOM".mp3;done

così puoi rilanciarlo tutte le volte e ogni volta ti rinomina i files
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]

Ultima modifica di zuper : 01-10-2009 alle 15:45.
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 15:47   #4
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
anche se chiaramente consiglio vivamente di tenere il nome del file e aggiungere solo il prefisso iniziale...

dato che è tecnicamente possibile che il RANDOM ti generi sempre lo stesso numero
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 15:51   #5
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da john_revelator Guarda i messaggi
CUT
seppur tecnicamente perfetta come sempre la tua soluzione...

mi permetto di "PUNTUALIZZARE" che mi pare una perdita di tempo fare tutta una funzione per sortare in ordine random per poi dare numeri ordinati

quando anche con il banalissimo dos hai la variabile %RANDOM%

PS: tanto lo so che non te la prendi se ti correggo
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 18:31   #6
laba
Senior Member
 
L'Avatar di laba
 
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1581
grazie mille ragazzi!!
Effettivamente avevo anche ventilato la possibilità di aggiungere solo un prefisso al nome file.
A questo punto dopo cena mi metto e provo la soluzione proposta, e vediamo se riesco a cambiare un po' l'ordine d'ascolto.
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it
laba è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 19:17   #7
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Quote:
Originariamente inviato da zuper Guarda i messaggi
seppur tecnicamente perfetta come sempre la tua soluzione...

mi permetto di "PUNTUALIZZARE" che mi pare una perdita di tempo fare tutta una funzione per sortare in ordine random per poi dare numeri ordinati

quando anche con il banalissimo dos hai la variabile %RANDOM%

PS: tanto lo so che non te la prendi se ti correggo
Ciao zuper. Ma figurati, ci mancherebbe. Non me la prendo di certo, anzi è sempre un piacere confrontarsi con altre persone e imparare da ognuno. Il fatto è che ormai sono powershell's addicted.

@laba: facci sapere come risolvi.
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 01-10-2009, 20:47   #8
laba
Senior Member
 
L'Avatar di laba
 
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1581
mi piace aver suscitato un sano confronto...

ho creato lo script (aggiungendo #!bin/bash come prima riga ovviamente) e dando il permesso di esecuzione.
Ecco però l'output:
Codice:
mv: impossibile eseguire stat di "/media/dati-sda/MUSICA/script/Sunday": Nessun file o directory
sono un po' troppo stanco per mettermi a capire qualcosa stasera: dormito troppo poco! Vi faccio sapere se riesco a capire da solo dove sta l'inghippo, sicuramente è una stupidaggine

p.s.:Nel frattempo, sapreste indicarmi qualche buona risorsa su cui iniziare a farmi un po' e ossa con la programmazione shell? Linux Magazine aveva una sezione dedicata, ma io dovrei partire proprio da zero zero
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it
laba è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2009, 10:43   #9
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
1) ma nello script hai aggiunto un cd per andare nella cartella dove sta la musica?

2) ci sono effettivamente file mp3?
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2009, 10:45   #10
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da john_revelator Guarda i messaggi
Il fatto è che ormai sono powershell's addicted.
lo so...dovresti andare in una clinica per disintossicarti
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2009, 12:02   #11
laba
Senior Member
 
L'Avatar di laba
 
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1581
Quote:
Originariamente inviato da zuper Guarda i messaggi
1) ma nello script hai aggiunto un cd per andare nella cartella dove sta la musica?

2) ci sono effettivamente file mp3?
1) lo script lo lancio nella cartella stessa in cui ci sono i file
2) si, ci sono gli mp3

ho svelato l'arcano: così com'è lo script si inchioda se incontra nomi di file con gli spazi. Togliendoli o semplicemente sostituendoli son underscore tutto funziona a meraviglia, ecco ad esempio cosa mi ha generato:
9321_13968_3491_benharper-stealmy_kisses.mp3
32498_4301_21617_Blur-CountryHouse.mp3

mi sa che ne approfitto per far togliere gli spazi a tutti gli mp3 che ho, ricordo in passato di aver usato un tool del genere, devo solo ricordarmi quale fosse. Ma google aiuta sempre!
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it
laba è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2009, 13:54   #12
zuper
Senior Member
 
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
Quote:
Originariamente inviato da laba Guarda i messaggi
1) lo script lo lancio nella cartella stessa in cui ci sono i file
2) si, ci sono gli mp3

ho svelato l'arcano: così com'è lo script si inchioda se incontra nomi di file con gli spazi. Togliendoli o semplicemente sostituendoli son underscore tutto funziona a meraviglia, ecco ad esempio cosa mi ha generato:
9321_13968_3491_benharper-stealmy_kisses.mp3
32498_4301_21617_Blur-CountryHouse.mp3

mi sa che ne approfitto per far togliere gli spazi a tutti gli mp3 che ho, ricordo in passato di aver usato un tool del genere, devo solo ricordarmi quale fosse. Ma google aiuta sempre!
sorry nn mi era neanche venuto in mente che uno su *nix potesse avere nomi file con gli spaziiiiiiiiiiiiiiii



__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi.
L'una o l'altra inutile scandalizzarsi.[plutus]
zuper è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2009, 10:59   #13
laba
Senior Member
 
L'Avatar di laba
 
Iscritto dal: Sep 2000
Città: Grugliasco (TO)
Messaggi: 1581
hai ragione, anche io sono contro gli spazi nei nomi file..però erano tutte canzoni già codificate così.
Poco male, ho girato un po' e ho trovato questo script, lo posto così se a qualcuno serve lo può usare:

Codice:
#!/bin/bash
#script che trasforma gli spazi nei file in underscore(_)
#Riesce a rinominare anche cartelle e sottocartelle
#Lascia invariate Maiuscole e minuscole
#se si vogliono cambiare maiuscole in minuscole basta cambiare
#tr 'A-Z ' 'A-Z_'` in tr 'A-Z ' 'a-z_'`
#Autore Lucio Zara (nick pennega)
#Sito www.spaghettilinux.org
#Mail pennega@gmail.com
#Versione 0.5
#Licenza GPL
#funzione usata per rinominare i file
RENAMEFILE() {
#$FILE non è necessario definirla come locale
local FILE=$1 #$1 è la 1° variabile passata alla funzione al momento della sua invocazione
#se non ho spazi nel nome file non lo devo rinominare
if echo $FILE | grep " " ; then
NEWNAMEFILE=`echo $FILE | tr 'A-Z ' 'A-Z_'`
#rinomino il file $NEWNAMEFILE contiene il nome del file
#con gli spazi traformati in _
mv "$FILE" $NEWNAMEFILE
fi
}
#questa è una funzione ricorsiva
RENAMEDIR() {
#$DIR è necessario definirla come locale
local DIR=$1
if echo $DIR | grep " " ; then
NEWNAMEDIR=`echo $DIR | tr 'A-Z ' 'A-Z_'`
mv "$DIR" $NEWNAMEDIR
else
#se non ci sono spazi assegno a $NEWNAMEDIR il valor di $DIR
NEWNAMEDIR=$DIR
fi
#Entro nella dir per verificare se ho altre dir o file
cd $NEWNAMEDIR
find -maxdepth 1 | while read d; do
#il comando find mi restituisce tra i risultati anche la dir corrente ./
#che non và considerata
if [ "$d" != "." ]; then
#verifico se $d è una directory
if [ -d "$d" ]; then
#se $d è una directory richiamo la funzione ricorsivamente
RENAMEDIR "$d"
else
#se $d non è una directory richiamo la funzione RENAMEFILE
RENAMEFILE "$d"
fi
fi
done
#Visto che prima sono entrato in $NEWNAMEDIR
adesso devo uscirne per poter continuare
cd ..
}
#MAIN
find -maxdepth 1 | while read l; do
#il comando find mi restituisce tra i risultati anche la dir corrente ./
#che non va considerata
if [ "$l" != "." ]; then
#verifico se ho una directory
if [ -d "$l" ]; then
#richiamo la funzione RENAMEDIR
RENAMEDIR "$l"
else
#richiamo la funzione RENAMEFILE
RENAMEFILE "$l"
fi
fi
done
__________________
"Senza deviazione non è possibile il progresso e quindi chiunque devia dalla norma viene considerato pazzo" (Frank Zappa) http://www.relov.it
laba è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


La rivoluzione dei dati in tempo reale è in arrivo. Un assaggio a Confluent Current 2025 La rivoluzione dei dati in tempo reale è ...
SAP Sapphire 2025: con Joule l'intelligenza artificiale guida app, dati e decisioni SAP Sapphire 2025: con Joule l'intelligenza arti...
Dalle radio a transistor ai Micro LED: il viaggio di Hisense da Qingdao al mondo intero Dalle radio a transistor ai Micro LED: il viaggi...
Meglio un MacBook o un PC portatile con Windows, oggi? Scenari, dubbi e qualche certezza Meglio un MacBook o un PC portatile con Windows,...
realme GT7: un "flaghsip killer" concreto! La recensione realme GT7: un "flaghsip killer" concr...
Una domenica bestiale Amazon: LG OLED, s...
DJI Mini 4 Pro Fly More Combo: drone leg...
realme GT 7T: display da 6000 nit, poten...
Ancora qualche pezzo per il portatile Le...
TV OLED LG Serie C4 2024: immagini da ci...
Smartwatch Amazfit in sconto: Active 2 a...
Router e ripetitori AVM FRITZ! da 30€ su...
Adulting 101: i corsi per imparare come ...
Blue Origin ha lanciato con successo la ...
L'amministrazione Trump ha ritirato la c...
La NASA potrebbe chiudere le missioni OS...
Trump vieta anche la vendita di software...
Le migliori offerte del weekend Amazon: ...
Dreame L40 Ultra a 699€, prezzo shock: v...
AMD Radeon RX 9060 XT: fino al 31% pi&ug...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www2v