The UNIX and Linux Forums  
Hei og Velkommen fra til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Advanced & ekspertbrukere
.
google unix.com



UNIX for Advanced & ekspertbrukere Expert-til-ekspert. Lær avanserte UNIX UNIX kommandoer, Linux operativsystem, systemadministrasjon, programmering, Shell, Shell Scripts, Solaris, Linux, HP-UX, AIX, OS X, BSD.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Fjern duplikatinnhold linjer i loggfiler karthikn7974 Shell programmering og Skripting 4 03-21-2009 06:41
Fjern Dupliserte linjer fra fil Nysif Steve UNIX for Dummies Spørsmål og svar 18 09-09-2007 09:57
hvordan du fjerner duplikat linjer fredao Shell programmering og Skripting 3 12-13-2006 12:51
Fjern Dupliserte Lines i File Den Tiack Ein Shell programmering og Skripting 5 01-12-2006 08:30
reconstructing en post i en annen rekkefølge r1500 UNIX for Dummies Spørsmål og svar 1 10-16-2003 06:24

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 08-02-2008
abhi.roy03 abhi.roy03 is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Innlegg: 1
Slik fjerner duplikat linjene i en posten uten å endre rekkefølgen

Hei alle,
Jeg må fjerne kopiere linjer i en fil uten chainging den order.for f.eks hvis jeg har en rekord

pqr
def
abc
LMN
pqr
abc
mkh
hgf


Utdatafilen bør
pqr
def
abc
LMN
mkh
hgf

Plz hjelpe me.It haster

Abhishek
  #2 (permalink)  
Old 08-02-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2869
Er dette en lekser?
Prøv å søke forumene.
  #3 (permalink)  
Old 08-02-2008
fryktinngytende redoubtable is offline
Registrert bruker
  
 

Bli Dato: Aug 2008
Beliggenhet: Portugal
Innlegg: 242
Code:
#!/usr/bin/perl -w

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

print "-\n";

foreach my $i (@lines)
{
        if (scalar (grep { /$i/ } @lines) == 1)
        {
                print $i;
        }
}
Bruk:
Code:
Tsunami repeated_lines # perl repeat.pl 
pqr
def
abc
lmn
pqr
abc
mkh
hgf
-
def
lmn
mkh
hgf
Tsunami repeated_lines #
Å stoppe skriving, trykker du bare på Ctrl-D og manuset vil gi deg all den ikke-gjentatt strenger i input rekkefølge.

Du kan også gjøre noe slikt som:

Code:
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  
Moderator
  
 

Bli Dato: desember 2003
Sted: Florida
Innlegg: 1926
Bruke awk ...
Code:
$ awk '! a[$0]++' file
pqr
def
abc
lmn
mkh
hgf
$
  #5 (permalink)  
Old 08-02-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2869
Som jeg sa,
du trenger bare å søke i forumet for å finne følgende løsninger:


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

Code:
perl -ne'$_{$_}++||print' input
  #6 (permalink)  
Old 08-03-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Hvis kravet er å holde det siste stedet for den første forekomsten, er det bare marginalt hardere.

Code:
perl -ne '$n{$_} = $.; END { print sort { $n{$a} <=> $n{$b} } keys %n }'
Hvis den siste linjen mangler en linje, som vil telle som en unik linje. Det er ikke veldig vanskelig å fikse, men jeg ville ikke komplisere skriptet.
  #7 (permalink)  
Old 08-03-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2869
Sitat:
Hvis kravet er å holde det siste stedet for den første forekomsten
[...]
Med GNU Awk:

Code:
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

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 12:13.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0