The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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
slutte to filer koti_rama Shell Programmering og Scripting 5 08-05-2008 05:20 AM
Vær to filer koti_rama Shell Programmering og Scripting 4 06-10-2008 07:15 AM
hvordan man kan slutte filer jxh461 UNIX for dummyer Spørgsmål & svar 5 08-23-2007 08:11 AM
slutte filer mohan705 Shell Programmering og Scripting 3 03-15-2007 06:51 AM
Deltag Files choppas Shell Programmering og Scripting 2 10-18-2006 11:03 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
Pinnacle pinnacle is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Posts: 182
Venstre slutte på filer via 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,

Code:
nawk 'NR==FNR{a[$1];next} {if($1 in a) print $1,"Found" else print}'  OFS="," File_B File_A

Ovenstående kode ikke fungerer help is appreciated
  #2 (permalink)  
Old 05-27-2009
tonan tonan is offline
Registreret Bruger
  
 

Join Date: Apr 2008
Stillinger: 11
og det var let, du mangler på syntaks

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

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

prøve output

bash-3.00 $ nawk 'NR \u003d\u003d FNR (a [$ 1]; næste) (if ($ 1 i a) 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 (permalink)  
Old 05-27-2009
Pinnacle pinnacle is offline
Registreret Bruger
  
 

Join Date: Apr 2009
Posts: 182
Citat:
Oprindeligt Indsendt af tonan View Post
og det var let, du mangler på syntaks

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

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

prøve output

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

Dette er ikke output Jeg søger efter. bedes du se den krævede output
  #4 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: 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  
narkoman
  
 

Join Date: Jan 2007
Beliggenhed: Варна, България / Milano, Italia
Indlæg: 2.915
Eller (brug gawk, nawk eller /usr/xpg4/bin/awkSolaris)


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


Sidst redigeret af radoulov; 05-27-2009 på 02:54 PM..
  #6 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 2555
hvis du har Python, et alternativ

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],","

output

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  
Registreret Bruger
  
 

Join Date: Apr 2009
Posts: 544
Citat:
...
ouptut:
NY, Found
NJ, Found
PA,
CA, Found
VA, Found
TN,
...
Og hvis du har perl, Så:


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

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:01 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0