The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
med to filer koti_rama Shell programmering og Skripting 5 08-05-2008 04:20
Bli med to filer koti_rama Shell programmering og Skripting 4 06-10-2008 06:15
Hvordan bli med filer jxh461 UNIX for Dummies Spørsmål og svar 5 08-23-2007 07:11
join filer mohan705 Shell programmering og Skripting 3 03-15-2007 06:51
Bli Filer choppas Shell programmering og Skripting 2 10-18-2006 10: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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-27-2009
Pinnacle pinnacle is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Venstre delta på filer ved awk

Sitat:
File_A:
NY
NJ
PA
CA
VA
TN
Sitat:
File_B:
NY hello
NJ 3
CA 1
VA 5
Sitat:
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
Ovennevnte koden fungerer ikke hjelper er verdsatt
  #2 (permalink)  
Old 05-27-2009
tonan tonan is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 11
Brønnen var dette enkelt, du savner på syntaksen

nawk 'NR \u003d\u003d FNR (a [$ 1]; neste) (if ($ 1 i a) print $ 1, "Funnet"; print)' OFS \u003d "," File_B File_A

----- Innlegg Update -----

sample output

bash-3,00 $ nawk 'NR \u003d\u003d FNR (a [$ 1]; neste) (if ($ 1 i a) print $ 1, "Funnet"; 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
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 182
Sitat:
Originally Posted by tonan View Post
Brønnen var dette enkelt, du savner på syntaksen

nawk 'NR \u003d\u003d FNR (a [$ 1]; neste) (if ($ 1 i a) print $ 1, "Funnet"; print)' OFS \u003d "," File_B File_A

----- Innlegg Update -----

sample output

bash-3,00 $ nawk 'NR \u003d\u003d FNR (a [$ 1]; neste) (if ($ 1 i a) print $ 1, "Funnet"; print)' OFS \u003d "," File_B File_A
NY, Found
NY
NJ, Found
NJ
PA
CA, Found
CA
VA, Found
VA
TN

Dette er ikke utdatafilen jeg er ute etter. se kreves output
  #4 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Beliggenhet: Bangalore
Innlegg: 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  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2859
Eller (bruk gawk, nawk eller /usr/xpg4/bin/awkSolaris)

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

Sist endret av radoulov; 05-27-2009 på 01:54..
  #6 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Sep 2006
Innlegg: 2529
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 online now Forum Advisor  
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 528
Sitat:
...
ouptut:
NY, Found
NJ, Found
PA,
CA, Found
VA, Found
TN,
...
Og hvis du har perl, Og deretter:

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

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 12:56.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0