Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Sostituzione righe

  1. #1

    Sostituzione righe

    Ciao, mi sono accorto di non saper fare una cosa banale...

    ho un file tipo

    ciao=mutato
    righa
    righa
    ciao=mutato

    vorrei sostituire

    ciao=mutato

    con

    ciao=nomine

    e inserire la sostituzione in uno script... come faccio? Con bash e' un casino... farlo con Perl?
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    cat file | sed "s/ciao=mutato/ciao=nomine/g" > file

    righa?

    dovrebbe bastare.

    spero.

    ciao.

    Edit: dimenticai /g.
    Edit2: g non è necessario, abituato a vim...
    Slack? Smack!

  3. #3
    grande.

    Sai come posso farlo con Perl???
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    non conosco perl! ahime'!

    me spiaze!
    Slack? Smack!

  5. #5
    Originariamente inviato da Sergio Pedone
    cat file | sed "s/ciao=mutato/ciao=nomine/g" > file
    ARGH!
    io se faccio così mi piglia 'file' e me lo svuota completamente!
    nel senso che lo apre per la scrittura e quindi viene cancellato, a voi non fa così? VVoVe:
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Originariamente inviato da adarkar
    ARGH!
    io se faccio così mi piglia 'file' e me lo svuota completamente!
    nel senso che lo apre per la scrittura e quindi viene cancellato, a voi non fa così? VVoVe:
    cat file | sed "s/ciao=mutato/ciao=nomine/" > file

    questo comando funziona perfettamente.
    come puoi vedere ho tolto la 'g' perche con sed
    non serve, visto che elabora il file riga per riga.
    Boh, li ho provati prima di postare e... vanno bene.
    Ho effettuato il test ed ecco i risultati:
    codice:
    sergio@winnie:~$ cat file
    ciao=mutato
    righa
    righa
    ciao=mutato 
    sergio@winnie:~$ cat file | sed "s/mutato/adarkar/" > file
    sergio@winnie:~$ cat file
    ciao=adarkar
    righa
    righa
    ciao=adarkar 
    sergio@winnie:~$
    Ciao.
    Slack? Smack!

  7. #7
    ah ok VVoVe:
    io ci ho perso dei bei file a fare a quella maniera lì x il motivo che ho detto sopra, boh VVoVe:

    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Originariamente inviato da adarkar
    ah ok VVoVe:
    io ci ho perso dei bei file a fare a quella maniera lì x il motivo che ho detto sopra, boh VVoVe:

    a mie spese, ho imparato a testare gli script
    sulle copie di file/directory originali.

    ciao.
    Slack? Smack!

  9. #9
    idem
    @_=(115,-17,6);print+map{chr$_[$.=$_-$_]*$_**$.+++$_[$.]*$_**$.+++$_[$.]*$_**$.}$.-$...$#_

  10. #10
    Originariamente inviato da adarkar
    ARGH!
    io se faccio così mi piglia 'file' e me lo svuota completamente!
    nel senso che lo apre per la scrittura e quindi viene cancellato, a voi non fa così? VVoVe:
    Non dovrebbe accadere, perche' con cat mandi in STDOUT il file, con sed operi la sostituzione e con ">" recuperi lo STDOUT e lo ridirezioni a "file" che viene sovrascritto.

    Ho notato, pero', che se il file e' molto grande c'e' il rischio che lo cancelli. Ad esempio

    cat file | grep -v "parola" > file

    mi funziona su file piccoli e medi, ma su file grandi no. Deve esserci qualcosa che ha a che fare con la memoria, per questo, per essere sicuro che faccia tutto bene solitamente faccio

    cat file | grep -v "parola" > ciao && mv ciao file
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

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