The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
juntar dois arquivos koti_rama Programação Shell Script e 5 08-05-2008 05:20
Junte dois arquivos koti_rama Programação Shell Script e 4 06-10-2008 07:15
como juntar arquivos jxh461 UNIX para Dummies Perguntas & Respostas 5 08-23-2007 08:11
juntar ficheiros mohan705 Programação Shell Script e 3 03-15-2007 06:51
Acesse Ficheiros choppas Programação Shell Script e 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 Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
pinnacle pinnacle is offline
Usuário
  
 

Join Date: Apr 2009
Lugares: 182
Esquerda aderir em arquivos usando awk

Citação:
File_A:
NY
NJ
PA
CA
VA
TN
Citação:
File_B:
Olá NY
NJ 3
CA 1
5 VA
Citação:
ouptut:
NY, Encontrado
NJ, Encontrado
PA,
CA, Encontrado
VA, Encontrado
TN,

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

O código acima não está funcionando a ajuda é apreciada
  #2 (permalink)  
Old 05-27-2009
tonan tonan is offline
Usuário
  
 

Join Date: Apr 2008
Lugares: 11
bem essa foi fácil, você está em falta sobre a sintaxe

nawk 'NR \u003d\u003d FNR uma ([$ 1]; próxima) (if ($ 1 em um) print $ 1, "foi encontrado";) print' OFS \u003d "," File_B File_A

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

amostra de saída

bash-nawk $ 3,00 'NR \u003d\u003d FNR uma ([$ 1]; próxima) (if ($ 1 em um) print $ 1, "foi encontrado";) print' OFS \u003d "," File_B File_A
NY, Encontrado
NY
NJ, Encontrado
NJ
PA
CA, Encontrado
CA
VA, Encontrado
VA
TN
  #3 (permalink)  
Old 05-27-2009
pinnacle pinnacle is offline
Usuário
  
 

Join Date: Apr 2009
Lugares: 182
Citação:
Originally Posted by tonan View Post
bem essa foi fácil, você está em falta sobre a sintaxe

nawk 'NR \u003d\u003d FNR uma ([$ 1]; próxima) (if ($ 1 em um) print $ 1, "foi encontrado";) print' OFS \u003d "," File_B File_A

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

amostra de saída

bash-nawk $ 3,00 'NR \u003d\u003d FNR uma ([$ 1]; próxima) (if ($ 1 em um) print $ 1, "foi encontrado";) print' OFS \u003d "," File_B File_A
NY, Encontrado
NY
NJ, Encontrado
NJ
PA
CA, Encontrado
CA
VA, Encontrado
VA
TN

Esta não é a saída estou procurando. veja os resultados
  #4 (permalink)  
Old 05-27-2009
devtakh devtakh is offline
Usuário
  
 

Join Date: Oct 2007
Local: Bangalore
Lugares: 514

Código:
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  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.926
Ou (utilização basbaque, nawk ou /usr/xpg4/bin/awk ligado Solaris)


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


Última edição por radoulov; em 05/27/2009 02:54..
  #6 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Usuário
  
 

Join Date: Sep 2006
Posts: 2.557
se você tiver o Python, uma alternativa

Código:
#!/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],","

saída

Código:
# ./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  
Usuário
  
 

Join Date: Apr 2009
Posts: 552
Citação:
...
ouptut:
NY, Encontrado
NJ, Encontrado
PA,
CA, Encontrado
VA, Encontrado
TN,
...
E se você tem perl, Então:


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

Teste:


Código:
$
$ 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

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 10:02.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0