The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
joindre deux fichiers koti_rama De programmation et de script Shell 5 08-05-2008 05:20 AM
Rejoignez les deux fichiers koti_rama De programmation et de script Shell 4 06-10-2008 07:15 AM
comment vous joindre à des fichiers jxh461 UNIX pour les nuls Questions et réponses 5 08-23-2007 08:11 AM
joindre des fichiers mohan705 De programmation et de script Shell 3 03-15-2007 06:51 AM
Rejoignez les fichiers choppas De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 05-27-2009
pinnacle pinnacle is offline
Registered User
  
 

Date d'inscription: avril 2009
Messages: 182
Gauche joindre des fichiers à l'aide sur awk

Citation:
File_A:
NY
NJ
PA
CA
VA
TN
Citation:
File_B:
NY bonjour
NJ 3
CA 1
VA 5
Citation:
ouptut:
NY, trouvé
NJ, trouvé
PA,
CA, trouvé
VA, trouvé
TN,

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

Le code ci-dessus ne fonctionne pas help is appreciated
  #2 (permalink)  
Old 05-27-2009
tonan tonan is offline
Registered User
  
 

Date d'inscription: avril 2008
Messages: 11
et cela a été facile, vous n'avez pas sur la syntaxe

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

----- Message ----- Mise à jour

exemple de sortie

bash-3.00 $ nawk 'NR \u003d\u003d FNR (a [$ 1]; next) (if ($ 1 a) print $ 1, "Found";) print "OFS \u003d", "File_B File_A
NY, trouvé
NY
NJ, trouvé
NJ
PA
CA, trouvé
CA
VA, trouvé
VA
TN
  #3 (permalink)  
Old 05-27-2009
pinnacle pinnacle is offline
Registered User
  
 

Date d'inscription: avril 2009
Messages: 182
Citation:
Posté par tonan View Post
et cela a été facile, vous n'avez pas sur la syntaxe

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

----- Message ----- Mise à jour

exemple de sortie

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

Ce n'est pas la sortie que je cherche. s'il vous plaît voir la sortie
  #4 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Registered User
  
 

Join Date: Oct 2007
Lieu: Bangalore
Messages: 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 online now Forum Staff  
addict
  
 

Join Date: Jan 2007
Lieu: Варна, България / Milano, Italia
Posts: 2928
Or (utilisation gawk, nawk ou /usr/xpg4/bin/awk sur Solaris)


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


Dernière édition par radoulov; au 05.27.2009 02:54 PM..
  #6 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Registered User
  
 

Join Date: Sep 2006
Messages: 2558
si vous avez Python, une alternative

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

sortie

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  
Registered User
  
 

Date d'inscription: avril 2009
Posts: 552
Citation:
...
ouptut:
NY, trouvé
NJ, trouvé
PA,
CA, trouvé
VA, trouvé
TN,
...
Et si vous avez perl, Alors:


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

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 05:50 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0