Como combinar dois arquivos em um com colunas para os dados de cada arquivo? [duplicado]

5

Eu tenho dois arquivos:

file1 contém:

1
2
3
4

o arquivo2 contém:

John
Sam
George
Ken

Eu quero combinar esses arquivos para criar um arquivo (arquivo3)

1, John
2, Sam
3, George
4, Ken

Meu pensamento foi usar loops aninhados e adicionar a vírgula para cada linha,

for x in file1
do
echo "$x" >> file3
for y in file2
echo ",$y" >> file3
done
done

Existe um comando que eu preciso usar? Como faço para que x e y apareçam em uma linha para cada entrada em ambos os arquivos?

    
por Juan Davila 22.04.2015 / 17:24

4 respostas

5

Você pode usar colar :

$ :|paste -d',' file1 - | paste -d' ' - file2
1, John
2, Sam
3, George
4, Ken

ou:

$ :|paste -d', ' file1 - file2
    
por 22.04.2015 / 17:31
3

Outra paste solution

paste -d ', ' file1 /dev/null file2
1, John
2, Sam
3, George
4, Ken
    
por 22.04.2015 / 18:05
1

você pode tentar isso:

paste -d, file1 file2 > file3

saída (arquivo3):

1,John
2,Sam
3,George
4,Ken
    
por 22.04.2015 / 17:55
1
sed 's/$/, /' file1 | paste -d '
sed 's/$/, /' file1 | paste -d '%pre%' - file2
' - file2
    
por 22.04.2015 / 18:00