![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Fjern mellemrum fra første felt, og skrive hele indholdet i andre tekstfil | carriehoff | Shell Programmering og Scripting | 3 | 11-11-2008 02:45 PM |
| Sammenlign & erstatte indholdet i en fil | kaustubh137 | Shell Programmering og Scripting | 2 | 05-27-2008 07:56 AM |
| sammenligne array indholdssystemer med fil | orahi001 | UNIX for dummyer Spørgsmål & svar | 0 | 03-25-2008 05:44 PM |
| Forespørgsel: bare nødt til at fjerne indholdet af filen uden at slette, at | namishtiwari | Shell Programmering og Scripting | 3 | 02-04-2008 05:41 AM |
| fjerne indholdet af en fil | surjyap | Sun Solaris | 2 | 03-02-2006 04:02 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Sammenlign to filer og fjerne hele indholdet af en fil fra en anden
Hej, Jeg har to filer, hvor den anden fil har nøjagtig samme indhold i den første fil med nogle ekstra registre. Nu, hvis jeg ønsker at fjerne de matchende poster fra fil2 og print kun det ekstra indhold, som den første fil ikke har, kunne jeg bruge nedenstående usofistikeret kommando, overveje F1 og F2 er de to filer Code:
var=`cat f1` grep -v "$var" f2 men jeg har brug for en mere optimal løsning med hurtig og pålidelig med mindre hukommelsesforbrug. Jeg har fundet disse 2 linjer kode, men det fungerer ikke for filer, der har længerevarende linjer: Code:
fgrep -v -x -f f2 f1
awk 'NR==FNR {b[$0]; next} !($0 in b)' f2 f1
Senest redigeret af royalibrahim; 11-18-2008 kl 12:51 AM.. |
|
||||
|
Tak til jer alle for forslagene. Men nogen har nogen awk, perl kode til at udføre denne opgave? Og også de nedenfor perl kode vil fjerne to eksemplarer, ikke på hinanden følgende linjer baseret på det sidste felt uden sortering. Nu kan du fortælle mig, hvad skal jeg ændre i denne kode for at udskrive unikke linjer i en fil ved bare ikke se det sidste felt, men hele linjen (hele albummet)? Code:
perl -ane'print unless $_{$F[-1]}++'
|
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|