vlookup funciona no awk no linux

1

Oi eu tenho dois arquivos contendo dados: arquivo1:

4,abc
3,xyz
5,fut
6,gfd

arquivo2:

gfd,2.3
xyz,4.5
abc,6.7
fut,3.2

Eu desejo criar um arquivo como arquivo de saída usando comandos de script do Linux:

4,6.7
3,4.5
5,3.2
6,2.3

como faço para usar FR = NFR etc script awk para fazer isso

    
por Sumit 22.01.2016 / 15:23

3 respostas

1

com join :

join -t, -1 2 -2 1 -o 1.1,2.2 <(sort -t, -k2 file1) <(sort -t, -k1 file2)
  • -t, definiu o delimitador para , .
  • -1 2 o primeiro campo de junção de arquivos é o segundo.
  • -2 1 o segundo campo de junção de arquivos é o primeiro.
  • -o 1.1,2.2 o formato de saída
  • <(sort ...) associa arquivos de entrada necessários, que são classificados no campo de associação.
por 22.01.2016 / 15:31
0

com awk :

script.awk:

FNR==NR{
    var[$2]=$1
}
FNR!=NR{
    print(var[$1]","$2)
}

Chame o script com

awk -F, -f script.awk file1 file2
    
por 22.01.2016 / 16:02
0

Semelhante ao forro awk:

awk -F"," 'FNR==NR{var[$2]=$1;next;}{print var[$1]FS$2}'  file1 file2

Saída:

$ awk -F"," 'FNR==NR{var[$2]=$1;next;}{print var[$1]FS$2}'  file1.txt file2.txt
6,2.3
3,4.5
4,6.7
5,3.2
    
por 26.01.2016 / 10:58