script per rinominare files

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
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
Ermes1
Linux 2.x
Linux 2.x
Messaggi: 374
Iscritto il: sab 25 mar 2006, 16:45

script per rinominare files

Messaggio da Ermes1 »

chi mi da qualche idea per creare uno script he possa rinominare i files presenti in una directory sostituendo ad esempio al posto ' ' (dello spazio) ==> '_'

come è possibile poi rendere lo script ricorsivo?'

Avatar utente
whites11
Linux 4.x
Linux 4.x
Messaggi: 1147
Iscritto il: ven 30 set 2005, 13:54
Località: Udine

Messaggio da whites11 »


Avatar utente
a1k
Linux 2.x
Linux 2.x
Messaggi: 288
Iscritto il: mar 6 dic 2005, 14:34
Località: Sondrio

Messaggio da a1k »

prova cosi'

Codice: Seleziona tutto

#!/bin/bash
for i in *
do
filename=`echo "$i" | sed -e "s/ /_/g"`
mv "$i" "$filename"
done
exit 0

Ermes1
Linux 2.x
Linux 2.x
Messaggi: 374
Iscritto il: sab 25 mar 2006, 16:45

Messaggio da Ermes1 »

mi spiegate anche cosa fanno di preciso... :o :o :o

Avatar utente
airex
Linux 1.x
Linux 1.x
Messaggi: 121
Iscritto il: sab 8 lug 2006, 11:03
Slackware: -current
Desktop: xfce
Distribuzione: Slackware64
Località: Milano
Contatta:

Messaggio da airex »

Allora:

Codice: Seleziona tutto

for i in *
do
...
done
prende tutti i file presenti nella directory e "scorre" i loro nomi

Codice: Seleziona tutto

 filename=`echo "$i" | sed -e "s/ /_/g"`
 mv "$i" "$filename"
prende il nome del file corrente ($i) e tramite un'espressione regolare di sostituzione toglie lo spazio e al suo posto inserisce _
e poi rinomina il file in analisi mettendogli come nome il risultato della sostituzione

Rispondi