Substituir colunas usando um shell

1

Como posso substituir a coluna 1 em File1 pela coluna 2 em File2 quando uma correspondência é encontrada?

File1
id1 36987
id2 75685
id3 12345
id4 12896

File2
id1 ID1
id2 ID2
id3 ID3
id5 ID5

Eu gostaria de escrever isso em outro File3 , que deve se parecer com:

File3
ID1 36987
ID2 75685
ID3 12345
id4 12896

Atualmente estou tentando (sem sucesso):

sed 'File2.txt | awk '{print "-e s/"$1"/"$2"}''<<< "File1.txt" 
    
por dovah 10.07.2014 / 16:37

2 respostas

2

com awk

$ awk 'NR==FNR {a[$1]=$2; next}; a[$1] {$1=a[$1]} 1' File2 File1
ID1 36987
ID2 75685
ID3 12345
id4 12896
    
por 10.07.2014 / 16:47
2

Eu usaria sed para gerar o script sed :

sed 's=^=s/=;s= =/=;s=$=/=' File2 | sed -f- File1
    
por 10.07.2014 / 16:45

Tags