Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di sylvaticus
    Registrato dal
    Aug 2004
    Messaggi
    1,207

    sostituire stringhe in tutti i files di una cartella

    Come faccio a sostituire AAA con BBB in tutti i files di testo su una cartella e le sue sottocartelle ?? sed?? grep ???
    <<contro i gas serra, spero più nelle nuove tecnologie pulite che nelle conferenze internazionali>>
    -- Steven Chu

  2. #2
    Utente di HTML.it L'avatar di sylvaticus
    Registrato dal
    Aug 2004
    Messaggi
    1,207
    mi autorispondo..
    Ho trovato rpl (http://rpl.sf.net):
    codice:
    rpl -R "AAA" "BBB" /fullPath/
    <<contro i gas serra, spero più nelle nuove tecnologie pulite che nelle conferenze internazionali>>
    -- Steven Chu

  3. #3
    rename
    man rename
    rename from to files

  4. #4
    Utente di HTML.it L'avatar di sylvaticus
    Registrato dal
    Aug 2004
    Messaggi
    1,207
    Originariamente inviato da weseven
    rename
    man rename
    rename from to files
    rename modifica i nomi dei files, ma a me serviva x i contenuti.. grazie della dritta.... mi è comunque utile...
    <<contro i gas serra, spero più nelle nuove tecnologie pulite che nelle conferenze internazionali>>
    -- Steven Chu

  5. #5
    con sed potevi anche, l'ho usato giusto ieri per fare la stessa cosa:
    codice:
    sed -e 's/AAA/BBB/g' * -i".bak"
    nel comando, s indica di sostituire, g indica globalmente (cioè non sostituisce solo il primo match per ogni riga, ma tutti i match per ogni riga).
    -i sta per "in place", cioè non stampa su stdout ma lavora sui files stessi, salvando le copie di backup aggiungendo .bak al nome.
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  6. #6
    Utente di HTML.it L'avatar di sylvaticus
    Registrato dal
    Aug 2004
    Messaggi
    1,207
    Originariamente inviato da GreyFox86
    con sed potevi anche, l'ho usato giusto ieri per fare la stessa cosa:
    codice:
    sed -e 's/AAA/BBB/g' * -i".bak"
    nel comando, s indica di sostituire, g indica globalmente (cioè non sostituisce solo il primo match per ogni riga, ma tutti i match per ogni riga).
    -i sta per "in place", cioè non stampa su stdout ma lavora sui files stessi, salvando le copie di backup aggiungendo .bak al nome.
    quindi
    codice:
    sed -e 's/AAA/BBB/g' * -i".*"
    lo farebbe su tutti i files di una directory ?? E per tutte le sotto-directory???
    <<contro i gas serra, spero più nelle nuove tecnologie pulite che nelle conferenze internazionali>>
    -- Steven Chu

  7. #7
    No così è sbagliato. ".bak" è opzionale, semplicemente se lo indichi ti crea un file di backup aggiungendo l'estensione che indichi prima di lavorare sui files. Il comando giusto per tutti i file della dir corrente, è quello del mio esempio.
    Non mi risulta che abbia un'opzione per farlo ciclare ricorsivamente in tutte le sotto-directory, mi sa che per quello ci vuole qualcosa di più.
    Qualcosa del genere dovrebbe funzionare:
    codice:
    find . -type f -exec sed -i".bak" -e "s/miao/bao/g" {} \;
    edit: ma quanto mi piace bash
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  8. #8
    Utente di HTML.it L'avatar di sylvaticus
    Registrato dal
    Aug 2004
    Messaggi
    1,207
    grazias...
    <<contro i gas serra, spero più nelle nuove tecnologie pulite che nelle conferenze internazionali>>
    -- Steven Chu

  9. #9
    figurati
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  10. #10
    Questa tua domanda mi ha fatto venire l'idea di scriverci sopra un articolo, penso e spero che possa essere utile a molti: http://greyfox.imente.org/index.php?id=74

    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

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 © 2025 vBulletin Solutions, Inc. All rights reserved.