Newsgroup: it.comp.software.editor
Titolo: richiesta strana

Mi servirebbe un editor che permetta all'interno di un file di testo 
puro, di eliminare tutte le righe identiche. Caso tipico di un 
databases di testo che però ha delle righe duplicate.
Esiste qualcosa che non sia DEDUPLE (programmino per dos che uso 
ancora). ?
-- 
Ciao, Dmitry

 writes:

sort -u
-- 
Come si fa a discutere della bontà di un editor del genere se non si
parla di quanto pulito faccia il codice?           -- Zefram,  in ING

 sort -u
sotto NT -u come opzione non esiste e cmq non mi elimina i duplicati 
ma semplicemente mi ordina il file ..
-- 
Ciao, Dmitry

ma semplicemente mi ordina il file ..
Il che è comunque un buon inizio. L'editor che uso io (Epsilon) ha una
funzione uniq che elimina i duplicati, ma parte dal presupposto che il
buffer sia ordinato. Presumo che sia così per la maggior parte degli
editor (non dubito che Emacs abbia una funzione analoga).
È l'algoritmo meno dispendioso, perché basta memorizzare una sola
riga; anche il tempo di elaborazione è lineare.
Se il file non è ordinato (o quanto meno non è ordinato per riga), e
si vuole preservare il suo ordine naturale, le cose diventano più
complicate; mi pare che si debba necessariamente costruire un
dizionario, in memoria o su disco, in sostanza una versione ordinata
del file, nella quale ricercare le occorrenze. Può essere anche molto
semplice (in Perl basterebbe costruire un hash) ma è più dispendioso,
sia in termini di memoria che di tempo.
Il programma che usi già come funziona? e perché non puoi continuare
ad usare quello?
Ciao.

 databases di testo che però ha delle righe duplicate.
scaricati gawk per win32,
sort testo.txt | gawk "{print; line=$0; getline; if ($0!=$line) print}" > testouniq.txt
-- 
.signature: not found

 print}" > testouniq.txt 
questo è interessante. Lo provo
-- 
Ciao, Dmitry

 continuare ad usare quello?
funziona benissimo, il problema è che mi serviva qualcosa di non 
interattivo e a linea di comando in modo da poterlo fare eseguire dal  
php. In effetti se mi impegno riesco a farlo anche con php, ma volevo 
evitare di perdere altre due nottate :)
-- 
Ciao, Dmitry

 dizionario
22:20:43: cat file
aaa
nnn
fff
sss
www
aaa
222
qqq
sss
bbb
ccc
22:20:46: cat -n file | sort -u +1 | sort -n | cut -f 2
aaa
nnn
fff
sss
www
222
qqq
bbb
ccc
22:20:50: 


 devo lavorare di più alla mia faccia da poker e studiare meglio i miei bluff
tieni presente però che, in qualità di barboncino, tendi inevitabilmente a
scondinzolare quando hai il punto                     -- PLS, in IFQ

 complicate;
pensandoci le cose diventano si piu' complicate ma anche irrilevanti:
se la posizione relativa nel file e' significativa, allora non ci sono
piu' due righe uguali...
 
-- 
Ed un altra cosa voglio dire, quando l'o servita e gli ospiti han
messo il formaggio grattugiato sopra la pasta.  Io le ho detto che
in Italia non si mette il formaggio sopra il cibo di mare, essi han
risposto che non siamo in Italia.           -- Sergio Perozzo, in IHC

 ciao neh,
grazzies :)
-- 
Ciao, Dmitry

piu' due righe uguali...
Non so costruire un esempio pratico, ma non mi sento di negarne la
possibilità: mi pare che si possa desiderare per qualche motivo di
conservare un certo ordine, e tuttavia non volere righe duplicate.
   aaa
   nnn
   fff
   sss
   www
   fff
   aaa
   nnn
   qqq
Mi sembra ipotizzabile, per quanto non riesca a trovare
un'applicazione pratica, che si possa essere interessati a  sapere che
fff si è presentato la prima volta dopo nnn, mentre la sua seconda
apparizione è per qualche motivo irrilevante.
Ciao.

 conservare un certo ordine, e tuttavia non volere righe duplicate.
sono d'accordo, il mio era solo un esercizio di estremismo
(qs ng langue..)
ciao


 (80k)
-- 
giardini di miro' - the swimming season