Como embaralhar dois arquivos e mesclar dados

1

Por exemplo: eu tenho dois arquivos

input.txt

one
two
three
four
five

output.txt

1
2
3
4
5

Eu quero mesclar esses dois arquivos e obter outro arquivo de saída (por exemplo, match.txt) assim,

one 1
two 2
three 3
...

Além disso, quando eu embarco esses dois arquivos .txt aleatoriamente, o arquivo de saída (match.txt) também mescla os dados corretos como esse ...

three 3
two 2
five 5
...

Como posso escrever o script de shell?

    
por user258336 31.10.2017 / 16:09

2 respostas

5

Simplesmente com o comando paste :

paste -d' ' input.txt output.txt > match.txt

O match.txt content:

one 1
two 2
three 3
four 4
five 5

Com shuffling (via comando sort ):

paste -d' ' input.txt output.txt | sort -R

Um resultado exemplar:

two 2
four 4
one 1
three 3
five 5
    
por 31.10.2017 / 16:21
0
$ cat input.txt
five
one
three
two
four

$ awk 'BEGIN{a["one"]=1;a["two"]=2;a["three"]=3;a["four"]=4;a["five"]=5}$0 in a{print $0,a[$0]}' input.txt
five 5
one 1
three 3
two 2
four 4
    
por 31.10.2017 / 21:45