Newsgroup: it.comp.programmare
Titolo: cancellare stringhe ricorsive da file di testo

Ciao a tutti ecco il mio problema :
Ho un file di testo in formato .txt ( win 2000 )
In questo file ( enorme) ricorrono in più punti moltissime note inserite tra
parentesi graffe.
Io le devo cancellare tutte e a mano divento pazzo anche usando la funzione
trova del blocco note.
Io non so nulla di programmazione e spero che mi possiate aiutare...
come posso fare per cancellare di un file testo tutto ciò che compare tra
parentesi graffe ?
Grazie
Marco

 trova del blocco note.
sed -e 's/{[^}]+}//g' NOMEFILE.TXT > NOMEFILE.NEW.TXT
hummm... 'spetta, tu intendi sotto Windows ? Vabbe', SED esiste anche
sotto Windows...
Davide

 sotto Windows...
Grazie
Marco

 presente su Win 2000..
Dubito che Sed sia presente su Win 2000 (o su qualunque versione di Win),
a quanto ne so Microsoft non fornisce programmi utili con i suoi
sistemi.
Sed e' distribuito con qualunque versione di Unix/Linux e ritengo tu
possa trovarlo sul sito della GNU (
www.fsf.org
). Non sono sicuro se
ne esistono i binari per Windows, in caso non esistano dovrai probabilmente
installarti CygWin. Cerca CygWin su google.
Davide

 installarti CygWin. Cerca CygWin su google.
Ora sto downloadando GygWin....poi digito da qualche parte la riga di imput
che mi hai sparato prima credo.... ;-)
Grazie
Marco
E pensare che ci starebbe linux sul mio HD....

Ok Davide...... ora c'ho il prompt di GygWin....dove metto il file da
modificare ( nella stessa directory di CygWin...e cosa digito al prompt per
cancellare tutti i contenuti delle graffe ?
Grazie
Marco

 modificare ( nella stessa directory di CygWin...i
Per prima cosa assicurati di avere installato anche Sed:
$ sed --version 
GNU sed version 3.02
Poi:
sed -e 's/{[^}]*}//g' /dove/sta/il/tuo/file/sorgente.txt > nuovofile.txt
Questo ti legge il file "sorgente.txt" da dove lo hai messo tu, e scrive
un nuovo file chiamato "nuovofile.txt" privo delle graffe e del loro
contenuto.
Verifica che il file risultante sia quello giusto e poi sei a posto.
Davide

> sed -e 's/{[^}]*}//g' /dove/sta/il/tuo/file/sorgente.txt > nuovofile.txt
Aiuto!!  è tutto ok la versione di sed è quella giusta ma il copia incolla
non funge e non so come scrivere le parentesi graffe !!
Marco

 non funge e non so come scrivere le parentesi graffe !!
ALT GR 8 (tasto alt di destra) ALT GR 9 (credo). Prova un po'...
Davide

Risolto( per caso )  facendo click col tasto dx si incolla ma ora mi da
questo messaggio di errore :
sed: -e expression #1, char 13: Unknown option to 's'
che sarà mai ?

 che sarà mai ?
Ma hai scritto giusto ?
Davide

Ora funzia (mi ostinavo a scrivere il percorso assoluto e bastava quello
relativo visto che i file li avevo messi dentri la cartella cgywin)....però
c'è una cosa che non va perchè è vero che sed ha tolto le graffe e quanto in
esse contenuto............... ma solo dove il testo dentro le graffe non
andava a capo....dove c'è il testo a capo e la graffa si chiude in un altra
riga me le lascia.
io ti sto facendo perdere troppo tempo Davide...e non è giusto.
grazie
Marco

 riga me le lascia.
Allora, quello si puo' fare con sed, solo che non con una semplice
riga. SED e' un vero e proprio "linguaggio" che consente di fare cose
molto sofisticate. Ti consiglio di vederti la documentazione di SED che
trovi su 
www.fsf.org
, e magari il manuale della O'Reilly (
www.oreilly.com
).
Davide