The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
ansluta två filer koti_rama Shell-programmering och Skript 5 08-05-2008 04:20
Delta i två filer koti_rama Shell-programmering och Skript 4 06-10-2008 06:15
hur man ska gå filer jxh461 UNIX for Dummies Frågor & Svar 5 08-23-2007 07:11
ansluta filer mohan705 Shell-programmering och Skript 3 03-15-2007 06:51
Delta Filer choppas Shell-programmering och Skript 2 10-18-2006 10:03

Reply
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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-27-2009
Pinnacle pinnacle is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 182
Vänster gå på filer med awk

Citat:
File_A:
NY
NJ
PA
CA
VA
TN
Citat:
File_B:
NY hello
NJ 3
CA 1
VA 5
Citat:
ouptut:
NY, Found
NJ, Found
PA,
CA, Found
VA, Found
TN,
Kod:
nawk 'NR==FNR{a[$1];next} {if($1 in a) print $1,"Found" else print}'  OFS="," File_B File_A
Ovanstående kod fungerar inte hjälp uppskattas
  #2 (permalänk)  
Old 05-27-2009
tonan tonan is offline
Registered User
  
 

Join Date: april 2008
Inlägg: 11
och det var lätt, du saknar på syntax

nawk "NR \u003d\u003d FNR (a [$ 1]; nästa) (if ($ 1 i ett) print $ 1," Found "print) 'OFS \u003d", "File_B File_A

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

Provet produktion

bash-3.00 $ nawk "NR \u003d\u003d FNR (a [$ 1]; nästa) (if ($ 1 i ett) print $ 1," Found "print) 'OFS \u003d", "File_B File_A
NY, Found
NY
NJ, Found
NJ
PA
CA, Found
CA
VA, Found
VA
TN
  #3 (permalänk)  
Old 05-27-2009
Pinnacle pinnacle is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 182
Citat:
Ursprungligen postat av tonan View Post
och det var lätt, du saknar på syntax

nawk "NR \u003d\u003d FNR (a [$ 1]; nästa) (if ($ 1 i ett) print $ 1," Found "print) 'OFS \u003d", "File_B File_A

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

Provet produktion

bash-3.00 $ nawk "NR \u003d\u003d FNR (a [$ 1]; nästa) (if ($ 1 i ett) print $ 1," Found "print) 'OFS \u003d", "File_B File_A
NY, Found
NY
NJ, Found
NJ
PA
CA, Found
CA
VA, Found
VA
TN

Detta är inte den produktionen jag letar efter. se krävs produktion
  #4 (permalänk)  
Old 05-27-2009
devtakh devtakh is offline
Registered User
  
 

Join Date: oktober 2007
Ort: Bangalore
Inlägg: 514
Kod:
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 (permalänk)  
Old 05-27-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2854
Eller (använd gawk, nawk eller /usr/xpg4/bin/awkSolaris)

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

Senast redigerad av radoulov; 05-27-2009 vid 01:54..
  #6 (permalänk)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Inlägg: 2518
om du har Python, ett alternativ
Kod:
#!/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],","
output
Kod:
# ./test.py
NY  found
NJ  found
PA ,
CA  found
VA  found
TN ,
  #7 (permalänk)  
Old 05-27-2009
durden_tyler's Avatar
durden_tyler durden_tyler is offline Forum Advisor  
Registered User
  
 

Join Date: april 2009
Inlägg: 521
Citat:
...
ouptut:
NY, Found
NJ, Found
PA,
CA, Found
VA, Found
TN,
...
Och om du har perlOch sedan:

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

Kod:
$
$ 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
Reply

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:21.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0