script per rinominare

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
pennega
Linux 3.x
Linux 3.x
Messaggi: 607
Iscritto il: dom 4 lug 2004, 0:00
Contatta:

script per rinominare

Messaggio da pennega »

wew ragazzi devo fare uno script in modo da rinominare i file contenuti in una directory che contengono al loro interno la stringa [1] o [2]...

in pratica faccio un esempio

il file pennega[1]-2.6.4 deve essere rinominato in
pennega-2.6.4

avete idea di che funzioni usare ?

grazie

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio da IceSlack »

io uso un programmino apposta

mmv

molto peeeko

http://www.freeonline.org/articolo_linux_dtml/a-140/

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

usalo nella dir in cui hai i files in questione...

Codice: Seleziona tutto

#!/bin/bash
ls -1 > /tmp/fileScript.txt
while read valore
do
        nuovoVal=`echo "$valore" | sed 's/\[[1-2]\]//g'`
        ls -l   ./"$nuovoVal" >/dev/null 2>&1
        if [ \( $? -ne 0 \) -a  \( "$nuovoVal" != "$valore" \)  ];then
                mv "$valore" "$nuovoVal"
        fi
done</tmp/fileScript.txt
rm /tmp/fileScript.txt
ciao!

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

for i in *;do mv $i `echo $i|sed 's/\[1\]//'`;done
for i in *;do mv $i `echo $i|sed 's/\[2\]//'`;done

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

masalapianta ha scritto:for i in *;do mv $i `echo $i|sed 's/\[1\]//'`;done
for i in *;do mv $i `echo $i|sed 's/\[2\]//'`;done
non per fare la pignola, ma questo dà errore nel caso in cui ci siano files che non devono essere rinominati, e non controlla se vengono sovrascritti files già presenti...

first
Linux 3.x
Linux 3.x
Messaggi: 677
Iscritto il: gio 23 giu 2005, 0:00

Messaggio da first »

non ne so molto di programmazione pero credo che una semplice riga scritta in perl possa funzionare....

ai guru svilupparla io butto solo il sasso :D

Rispondi