PDA

Visualizza la versione completa : aiuto urgente: home sputtanata, aggiunto suffisso .sbd a tutte le dir...


lnessuno
11-11-2004, 23:18
fortunatamente, solo a quelle non nascoste...

praticamente ho lanciato uno script che doveva convertirmi le email di evolution in formato thunderbird, in realtà mi ah combinato sto casino... a tutte le directory ha aggiunto il suffisso .sbd, e ora vorrei far tornare tutto come prima...

ho uno script che mi sono fatto che toglie il suffisso a tutte le dir nel percorso corrente:

for file in *.sbd ; do mv $file `echo $file | sed 's/\(.*\\).sbd/\1/'` ; done

e questo funziona, però mi manca un qualcosa che lo renda ricorsivo... ovvero che mi faccia questo lavoro per tutte le directory presenti nella home.

ho pensato all'uso di ls o di tree per prendere tutti i nomi delle dir che terminano in .sbd, pensando poi di riversare tutto in un file di testo, capovolgerlo (in modo che parta dal percorso più "profondo" per rinominare le dir fino alla home stessa), però non so come farlo... :(

lnessuno
11-11-2004, 23:26
un

ls -R |grep .sbd

va quasi bene, però mi raggruppa le sottodirectory che appartengono alla stessa dir...

./software/games.sbd/cube.sbd/packages.sbd/models.sbd/health.sbd:
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/hudguns.sbd:
chaing.sbd
rifle.sbd
rocket.sbd
shotg.sbd
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/hudguns.sbd/chaing.sbd:
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/hudguns.sbd/rifle.sbd:
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/hudguns.sbd/rocket.sbd:
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/hudguns.sbd/shotg.sbd:
./software/games.sbd/cube.sbd/packages.sbd/models.sbd/monster.sbd:
bauul.sbd
goblin.sbd
hellpig.sbd


e non mi va bene questo :(

KornShell
11-11-2004, 23:28
fallo in python, usi os.walk per andare nelle directory e ai file che terminano con .sbd fai togliere l'estensione.

lnessuno
11-11-2004, 23:43
facile :zizi:


per chi è capace :(

lnessuno
11-11-2004, 23:53
ora ho una lista di tutte le directory con quel suffisso, in un file txt

il problema è che devo invertire l'ordinamento:

/home/lele/software/misc.sbd/nvu-0.50.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/icons
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/icons/default
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/communicator.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/communicator.sbd/content.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/editor.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/editor.sbd/content.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/inspector.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/inspector.sbd/content.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/messenger.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/messenger.sbd/content.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/navigator.sbd
/home/lele/software/misc.sbd/nvu-0.50.sbd/chrome.sbd/overlayinfo/navigator.sbd/content.sbd


in questo modo va dalla meno profonda alla più profonda... a me serve il contrario. in teoria basta capovolgere il file... e poi passarlo al mio script di cui sopra. speriamo bene...

Ilmalcom
12-11-2004, 00:26
Per capovolgere il file puoi usare tac

lnessuno
12-11-2004, 00:38
ho risolto...


dunque:

con

ls -R |grep .sbd > sputtanate.txt

ho trovato tutte le dir che terminano in .sbd, però l'output veniva con delle righe ridondanti come nell'esempio sopra (le parti in rosso erano solo nomi di files duplicati).

con gambas mi sono fatto uno script che mi ha eliminato quelle righe (circa 500 in tutto, su 1800 che erano i risultati di ls) e ha messo tutto nel file sputtanate2.txt

con sort -r sputtanate2.txt > sputtanate3.txt ho invertito l'ordinamento delle dir all'interno del file, in modo che partissero dalla più profonda per arrivare alla meno profonda.

poi lo script che ho messo all'inizio, leggermente modificato, ha preso riga per riga il contenuto del file sputtanate3.txt e ha rinominato tutte le dir...


ce l'ho fatta, ora mi manca solo più di recuperare le email di evolution, poi sono a posto :madai!?:

Loading