![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen! |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Find Navne i flere filer | Rally_Point | UNIX for dummyer Spørgsmål & svar | 3 | 02-23-2009 08:36 PM |
| Eftersøgningen af forsvundne sekventiel filnavne | Julolidine | Shell Programmering og Scripting | 2 | 07-03-2008 12:52 AM |
| Finde filer med navne, der har et reelt tal større end difined. | harmonwood | Shell Programmering og Scripting | 2 | 11-09-2007 10:28 AM |
| finde duplikateksemplaret filer efter størrelse og finde mønstertilpasning og tælle | jerome Sukumar | Shell Programmering og Scripting | 2 | 12-01-2006 04:20 AM |
| hvordan man finder stort bogstav navne i en fil uden at finde ord i starten af punktum | kev269 | Shell Programmering og Scripting | 1 | 04-10-2006 10:35 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Finde navne i flere filer - andet forsøg
Jeg kunne ikke finde den oprindelige tråd, som jeg har oprettet, og da jeg ikke fik et endeligt svar, jeg tænkte jeg ville prøve igen. Måske denne gang jeg kan beskrive, hvad jeg vil have en lidt bedre.
I've got to filer, hver med tusindvis af navne alle adskilt af nye linje. Jeg vil gerne vide, hvis 'navn i fil1' vises også overalt i fil 2 derefter printe det ud for mig (selvom produktionen ikke er problemet). Jeg har tænkt, at måske er der en måde at gå gennem den første fil og med hver linje, så gå igennem hver linje i den anden fil (noget i retning af en indlejret løkke erklæring) og derefter gå derfra. Jeg er bare gad vide, om der vil arbejde med, hvis der er en bedre og lettere måde. Tak |
|
||||
|
Brug associative arrays i awk. Dette finde navne, der optræder i begge filer. Det er case-følsomme og følsomme over for ekstra rum - med andre ord en eksakt match Code:
awl '{ if(FILENAME=="file1") (arr[$0]++}
if(FILENAME=="file2") {if($0 in arr) {print $0)} }
}' file1 file2
Indskudt sløjfer, som du beskriver tage alt for lang tid. Det er omtrent lige så godd som det bliver. |
|
||||
|
Citat:
Noget lignende: Code:
while read name;do grep "$name" file2;done < file1 Og du kan gøre noget lignende: Code:
while read name;do echo $name:;grep "$name" file2;done < file1 Eller noget andet baseret på returnere værdien af dap? Code:
while read name;do ;grep -q "$name" file2 && echo $name found in file2;done < file1 Og det ville hjælpe, hvis du kunne vise kilden til filen, hvis dette ikke virker. Har du overvejet at sortere filerne og bruge diff? Venlig hilsen / Lakris |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|