PDA

Visualizza Versione Completa : text edit "elimina doppioni"



Mr Enrich
29-11-07, 21:10
ciao scusate volevo sapere se è possibile con textedit (o con che altro programma), avendo un elenco di parole, impostare in qualche modo l'eliminazione di tutte le parole doppie presenti nel testo

per esempio nel testo:
forchetta, cucchiaio, palo, pentola, minestra, fragola, palo, mulo, maiale, nano, finestra, lampada, pentola, minestra.

togliere i doppioni e lasciare solo una volta ogni termine (l mio testo contiene molti più termini, circa 1200, e non posso eliminarli uno ad uno..)

meigel
29-11-07, 22:18
Ti segnalo Clean Text (http://www.apimac.com/clean_text/index.php) con il quale credo che sia possibile fare ciò che ti serve; è uno shareware ma magari potresti fare qualche prova con la versione non registrata... copio e incollo dal Readme File:

Limitations of the unregistered version
Apimac Clean Text is shareware. A shareware reminder window appears and forces you to wait for some seconds every time you open the program and some options as "Fix Paragraphs" and "Remove Returns" will become unavailable.

;)

Peterpan
29-11-07, 23:25
E' un file di testo semplice ? Se si' con un paio di comandi shell si dovrebbe poter fare.

Mr Enrich
30-11-07, 00:02
il programma è interessante però non mi sembra di trovare l'opzione che mi serve.. magari non la vedo io..
http://img141.imageshack.us/img141/1469/immagine4so8.png

Mr Enrich
30-11-07, 00:03
E' un file di testo semplice ? Se si' con un paio di comandi shell si dovrebbe poter fare.

si è testo semplice..

Peterpan
30-11-07, 00:38
si è testo semplice..

Fammi fare un paio di prove... e poi ti dico, ok ?

Mr Enrich
30-11-07, 00:45
ok aspetto con trepidazione ;) grazie mille!

Peterpan
30-11-07, 12:27
ok aspetto con trepidazione ;) grazie mille!

Eccomi qui.

Devo dire che la soluzione proposta non e' completamente farina del mio sacco, visto che le mie conoscenze di shell erano coperte da una fitta coltre di polvere :D

Comunque, ho trovato una soluzione semplice che pero' implica una lieve trasformazione del file da trattare, ovvero porta tutte le parole in riga, ma te le elenca perlomeno ognuna in una sola occorrenza.

supposto che il tuo file si chiami lista.txt e che tu abbia aperto il terminale e ti trovi nella directory dove si trova il file.


cat lista.txt|tr A-Z a-z|tr -c a-z '\n' |sort|uniq

Questo ti da l'elenco delle parole. Se vuoi che questo elenco sia salvato in un unico file, devi solo aggiungere il redirezionamento nel file, in questo modo:


cat lista.txt|tr A-Z a-z|tr -c a-z '\n' |sort|uniq>nuovalista.txt

Mr Enrich
30-11-07, 15:42
grazie per il consiglio, però è una lista contenente email, e terminale mi divide parola per parola perciò in una mail tipi "zio_pippofabio@libero.it" mi da un elenco così:
zio
pippo
fabio

.. e non tutta l'email. boh..ò

mutaforme
30-11-07, 15:44
Penso che usando Applescript si possa fare, quando torno a casa ci guardo

Peterpan
30-11-07, 15:45
Perche' ho filtrato tutti gli spazi, e i segni di interpunzione, lavorando solo sui caratteri alfabetici. Probabilmente ci si puo' lavorare su. Sono i due comandi tr che vanno modificati ad hoc.

P.S. Se mi dicevi prima che erano e-mail... :)

Mr Enrich
03-12-07, 20:30
hai ragione scusa ; ) hai poi trovato una soluzione? io annego nella mia ignoranza

Peterpan
03-12-07, 23:48
hai ragione scusa ; ) hai poi trovato una soluzione? io annego nella mia ignoranza

Il facile esercizio viene lasciato al lettore... :lol:

No scherzo non ho raffinato il comando, ma se ne hai davvero bisogno... possiamo cercare una soluzione.

Mr Enrich
04-12-07, 08:41
se hai un po' di tempo da dedicarci mi dai una mano.. altrimenti fa lo stesso.. ;)

Nadabi
04-12-07, 14:28
prova a dare un'occhiata a questa applicazione: Differencia (http://daytimesoftware.com/differencia.html) ...da quello che ho capito confronta i dati, parole numeri tra diversi formati ..e forse anche dallo stesso testo ....

Peterpan
04-12-07, 15:09
Eccomi qui.

Con la prova che ho fatto ha funzionato, se non dovesse funzionare mi devi dare piu' dettagli sul contenuto del tuo file:


cat file_da_processare |tr A-Z a-z|tr -c [a-z'\.''\@'] '\n'|sort|uniqOcchio agli spazi. Gli apici sono tutti singoli, quindi dove ne trovi due devi digitare due volte il carattere ' e non la doppia virgoletta "

Se vuoi mettere il risultato in un nuovo file aggiungi:


cat file_da_processare |tr A-Z a-z|tr -c [a-z'\.''\@'] '\n'|sort|uniq > nuovo_file

Ciaociao ! :smt039

Mr Enrich
06-12-07, 21:34
grazie dell'aiuto!

in realtà alcune email continua a dividermele, però va bene così... ;)

Peterpan
07-12-07, 00:01
grazie dell'aiuto!

in realtà alcune email continua a dividermele, però va bene così... ;)

Cerca di capire perchè, ci sono segni di interpunzione o magari underscore ? se si' aggiungi dopo '\.' anche un '\_'