Aqui estão algumas maneiras:
-
Usando
paste
ecut
:$ paste -d ' ' <(cut -d' ' -f 1 ABC.txt ) <(cut -d' ' -f 1 PQR.txt ) > output.txt ABC PQR
Se o seu sistema não suporta a substituição de processos, use isto:
$ cut -d' ' -f 1 ABC.txt > /tmp/aa; cut -d' ' -f 1 PQR.txt > /tmp/bb; paste -d ' ' /tmp/aa /tmp/bb
-
Usando
awk
(obrigado @Costas):awk 'FNR==NR{a[FNR]=$1; next}{print a[FNR],$1}' ABC.txt PQR.txt > output.txt
A variável especial
FNR
é o número da linha do arquivo de entrada atual eNR
é o número da linha da entrada em geral, seja qual for o arquivo de onde veio. Os dois são iguais apenas enquanto o primeiro arquivo de entrada está sendo lido. Assim, os primeiros campos do primeiro arquivo são salvos noa
array (a[FNR]=$1
) cujas chaves são números de linha e cujos valores são os primeiros campos. Então, quando o segundo arquivo for alcançado, imprimiremos o valor correspondente ao seu número de linha (a[NR]
) e o primeiro campo da linha atual.