The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > UNIX e avanzata per utenti esperti
.
google unix.com



UNIX e avanzata per utenti esperti Expert-to-Expert. Ulteriori avanzata UNIX, comandi UNIX, Linux, Sistemi Operativi, System Administration, Programmazione, Shell, Shell Script, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Rimuovere le righe duplicate nel file di log karthikn7974 Shell scripting e di programmazione 4 03-21-2009 06:41 PM
Rimuovere le righe duplicate da File Steve Nysif UNIX for Dummies Domande & Risposte 18 09-09-2007 09:57 AM
come rimuovere le righe duplicate fredao Shell scripting e di programmazione 3 12-13-2006 12:51 PM
Rimuovere le righe duplicate in File Il Tiack Ein Shell scripting e di programmazione 5 01-12-2006 08:30 AM
ricostruire un record in un ordine diverso r1500 UNIX for Dummies Domande & Risposte 1 10-16-2003 06:24 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 08-02-2008
abhi.roy03 abhi.roy03 is offline
Utente Registrato
  
 

Join Date: Aug 2008
Interventi: 1
Come rimuovere le righe duplicate di un record senza modificare l'ordine

Ciao a tutti,
Devo rimuovere le righe duplicate in un file senza chainging il order.for ad esempio se ho un record

PQR
def
abc
LMN
PQR
abc
MKH
hgf


l'output dovrebbe essere
PQR
def
abc
LMN
MKH
hgf

Me.It Plz aiuto è urgente

Abhishek
  #2 (permalink)  
Old 08-02-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Messaggi: 2.876
Si tratta di una casa?
Prova a cercare nei forum.
  #3 (permalink)  
Old 08-02-2008
redoubtable redoubtable is offline
Utente Registrato
  
 

Join Date: Aug 2008
Posizione: Portogallo
Interventi: 242
Codice:
#!/usr/bin/perl -w

while (<STDIN>)
{
        push (@lines, $_);
}

print "-\n";

foreach my $i (@lines)
{
        if (scalar (grep { /$i/ } @lines) == 1)
        {
                print $i;
        }
}
Uso:
Codice:
Tsunami repeated_lines # perl repeat.pl 
pqr
def
abc
lmn
pqr
abc
mkh
hgf
-
def
lmn
mkh
hgf
Tsunami repeated_lines #
Di arresto, basta premere Ctrl-D e lo script vi darà tutte le stringhe non ripetuta in ordine di ingresso.

È anche possibile fare qualcosa di simile:

Codice:
Tsunami repeated_lines # cat lines |perl repeat.pl 
-
def
lmn
mkh
hgf
Tsunami repeated_lines # cat lines 
pqr
def
abc
lmn
pqr
abc
mkh
hgf
Tsunami repeated_lines #
  #4 (permalink)  
Old 08-02-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: dicembre 2003
Luogo: Florida
Messaggi: 1.927
Con awk ...
Codice:
$ awk '! a[$0]++' file
pqr
def
abc
lmn
mkh
hgf
$
  #5 (permalink)  
Old 08-02-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Messaggi: 2.876
Come ho già detto,
basta una ricerca nei forum per trovare le seguenti soluzioni:


Codice:
awk '!_[$0]++' input
Codice:
perl -ne'print unless $_{$_}++' input
oppure:

Codice:
perl -ne'$_{$_}++||print' input
  #6 (permalink)  
Old 08-03-2008
epoca era is offline Forum Advisor  
Herder di Inutile Gatti (Su sabbatico)
  
 

Iscriviti Data: marzo 2008
Ubicazione: / ci / è / solo / bin / sh
Interventi: 3.652
Se la condizione è di mantenere l'ultimo posto della prima occorrenza, è solo marginalmente più difficile.

Codice:
perl -ne '$n{$_} = $.; END { print sort { $n{$a} <=> $n{$b} } keys %n }'
Se l'ultima riga è priva di un capo ", che conterà come una linea unica. Non è terribilmente difficile da correggere, ma non volevo complicare lo script.
  #7 (permalink)  
Old 08-03-2008
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Messaggi: 2.876
Citazione:
Se la condizione è di mantenere l'ultimo posto della prima occorrenza
[...]
Con GNU Awk:

Codice:
awk 'END { for (k in r) t[sprintf("%10d", r[k])] = k
  n = asorti(t, _)
  while (++i <= n) print t[_[i]] }
{ r[$0] = NR }' filename
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:05 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0