The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
treden twee bestanden koti_rama Programmeren en Shell Scripting 5 08-05-2008 05:20
Deelnemen aan twee bestanden koti_rama Programmeren en Shell Scripting 4 06-10-2008 07:15
hoe deel te nemen aan bestanden jxh461 UNIX voor Dummies Questions & Answers 5 08-23-2007 08:11
Join bestanden mohan705 Programmeren en Shell Scripting 3 03-15-2007 06:51
Join Files choppas Programmeren en Shell Scripting 2 10-18-2006 11:03

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
Pinnacle pinnacle is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 182
Resterende aansluiten op bestanden met awk

Citaat:
File_A:
NY
NJ
PA
CA
VA
TN
Citaat:
File_B:
NY hallo
NJ 3
CA 1
VA 5
Citaat:
ouptut:
NY, Gevonden
NJ, Gevonden
PA,
CA, Gevonden
VA, Gevonden
TN,
Code:
nawk 'NR==FNR{a[$1];next} {if($1 in a) print $1,"Found" else print}'  OFS="," File_B File_A
De bovenstaande code werkt niet help is appreciated
  #2 (permalink)  
Old 05-27-2009
tonan tonan is offline
Geregistreerde gebruiker
  
 

Join Date: april 2008
Posts: 11
en dit was makkelijk, je mist op de syntaxis

nawk 'NM FNR \u003d\u003d (a [$ 1];) volgende (if ($ 1 in een) print $ 1, "gevonden"; print)' OFS \u003d "," File_B File_A

----- Post Update -----

voorbeelduitvoer

bash-3.00 $ nawk 'NM FNR \u003d\u003d (a [$ 1];) volgende (if ($ 1 in een) print $ 1, "gevonden"; print)' OFS \u003d "," File_B File_A
NY, Gevonden
NY
NJ, Gevonden
NJ
PA
CA, Gevonden
CA
VA, Gevonden
VA
TN
  #3 (permalink)  
Old 05-27-2009
Pinnacle pinnacle is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 182
Citaat:
Oorspronkelijk geplaatst door tonan View Post
en dit was makkelijk, je mist op de syntaxis

nawk 'NM FNR \u003d\u003d (a [$ 1];) volgende (if ($ 1 in een) print $ 1, "gevonden"; print)' OFS \u003d "," File_B File_A

----- Post Update -----

voorbeelduitvoer

bash-3.00 $ nawk 'NM FNR \u003d\u003d (a [$ 1];) volgende (if ($ 1 in een) print $ 1, "gevonden"; print)' OFS \u003d "," File_B File_A
NY, Gevonden
NY
NJ, Gevonden
NJ
PA
CA, Gevonden
CA
VA, Gevonden
VA
TN

Dit is niet de output Ik ben op zoek naar. Ga naar de gewenste output
  #4 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Geregistreerde gebruiker
  
 

Join Datum: oktober 2007
Locatie: Bangalore
Posts: 514
Code:
awk 'FNR==NR{a[$1]++;next}{if($1 in a)print $1,"Found"; else printf("%s%s\n", $1,OFS)}' OFS="," B A

-Devaraj Takhellambam
  #5 (permalink)  
Old 05-27-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.875
Of (gebruik gawk, nawk of /usr/xpg4/bin/awk aan Solaris)

Code:
awk 'NR == FNR { _[$1]; next }
($2 = $1 in _ ? "Found" : x) || 1
' OFS=, file_b file_a

Laatst gewijzigd door radoulov; op 05.27.2009 02:54 PM..
  #6 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Sep 2006
Berichten: 2.538
als u Python, een alternatief
Code:
#!/usr/bin/env python
file2=[i.split()[0] for i in open("file2").read().split("\n")]
for line in open("file1"):
    line=line.strip().split()
    if line[0] in file2:
        print line[0]," found"
    else:
        print line[0],","
uitgang
Code:
# ./test.py
NY  found
NJ  found
PA ,
CA  found
VA  found
TN ,
  #7 (permalink)  
Old 05-27-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 535
Citaat:
...
ouptut:
NY, Gevonden
NJ, Gevonden
PA,
CA, Gevonden
VA, Gevonden
TN,
...
En als u perl, Dan:

Code:
perl -ne 'BEGIN{open(F,"fileb"); while(<F>){split;$found{$_[0]}="Found"} close(F)} {chomp; print "$_,$found{$_}\n"}' filea
Test:

Code:
$
$ cat filea
NY
NJ
PA
CA
VA
TN
$
$ cat fileb
NY hello
NJ 3
CA 1
VA 5
$
$ perl -ne 'BEGIN{open(F,"fileb"); while(<F>){split;$found{$_[0]}="Found"} close(F)} {chomp; print "$_,$found{$_}\n"}' filea
NY,Found
NJ,Found
PA,
CA,Found
VA,Found
TN,
$
tyler_durden
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:28 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0