Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    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. #2
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    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. #3
    fallo in python, usi os.walk per andare nelle directory e ai file che terminano con .sbd fai togliere l'estensione.
    PyGTK GUI programming
    un impegno concreto: eliminare la k dalle tastiere italiane

  4. #4

  5. #5
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    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...

  6. #6
    Utente di HTML.it L'avatar di Ilmalcom
    Registrato dal
    Oct 2002
    Messaggi
    1,345
    Per capovolgere il file puoi usare tac

  7. #7
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.