|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2000
Città: The city of wasting disease
Messaggi: 7389
|
aiuto urgente: home sputtanata, aggiunto suffisso .sbd a tutte le dir...
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... |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2000
Città: The city of wasting disease
Messaggi: 7389
|
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 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
in un file pippo.sh metti
#!/bin/sh mv $1 `echo $1 | sed 's/\(.*\\).sbd/\1/'` e poi nella home nella home: find . -name *.sbd -type d -exec pippo.sh {} \; non mi viene i mente una maniera di combinare le due cose in un unico comando |
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2000
Città: The city of wasting disease
Messaggi: 7389
|
grazie, alla fine avevo già risolto... il mio metodo però è leggermente più complesso
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... |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
capito, a farlo a mano ci mettevi di meno
![]() |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Feb 2000
Città: The city of wasting disease
Messaggi: 7389
|
su 1800 dir...
cmq lo script che ho fatto in gambas è poi molto semplice, qualcosa tipo if mid(riga,1,2) = "./" then apro il file di output ci appendo la riga al fondo chiudo il file di output end if |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:36.




















