Arquivo1.txt
id No
gi|371443199|gb|JH556661.1| 7907290
gi|371443198|gb|JH556662.1| 7573913
gi|371443197|gb|JH556663.1| 7384412
gi|371440577|gb|JH559283.1| 6931777
Arquivo2.txt
id P R S
gi|367088741|gb|AGAJ01056324.1| 5 5 0
gi|371443198|gb|JH556662.1| 2 2 0
gi|367090281|gb|AGAJ01054784.1| 4 4 0
gi|371440577|gb|JH559283.1| 21 19 2
output.txt
id P R S NO
gi|371443198|gb|JH556662.1| 2 2 0 7573913
gi|371440577|gb|JH559283.1| 21 19 2 6931777
O arquivo1.txt possui duas colunas e o arquivo2.txt possui quatro colunas. Eu quero unir os dois arquivos que possuem um ID exclusivo (o array [1] deve corresponder nos dois arquivos (arquivo1.txt e arquivo2.txt)) e fornecer apenas a identificação correspondente à saída (consulte output.txt).
Eu tentei join -v <(sort file1.txt) <(sort file2.txt)
. Qualquer ajuda com os comandos awk ou join solicitados.
tac
?sort
coloca a sequência do cabeçalho no final. Na verdade, é uma solução suja. E, em geral, o cabeçalho do caso pode ir para o meio da saída. No entanto, funciona aqui.Uma maneira de usar
awk
:Conteúdo de
script.awk
:Execute-o como:
Com o seguinte resultado:
fonte