Adicione linhas do arquivo a outro arquivo

1

Eu tenho dois arquivos.

Primeiro arquivo ( users.txt ):

!/bin/bash/

johnny

james

clara

brandon

steve

louis

daniel

Segundo arquivo ( mails.txt )

[A primeira linha não está vazia, o arquivo contém apenas o endereço de email sem espaços]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

Como posso adicionar em qualquer nome de usuário do primeiro arquivo o email do segundo arquivo? Eu acho que o comando sed é necessário.

    
por Jacky 04.06.2016 / 13:03

2 respostas

2

Você pode ler os dois arquivos juntos, linha por linha, para obter a saída desejada. (Eu suponho que você não tem outras linhas indesejadas nesses arquivos)

while read -r line1 && read -r line2 <&3;
do
    echo $line1
    echo $line2

done<users.txt 3<mails.txt

users.txt é lido usando o descritor de arquivo de entrada padrão 0

mails.txt é lido usando nosso descritor de arquivo fornecido 3

Saída:

johnny
[email protected]


james
[email protected]


clara
[email protected]


brandon
[email protected]


steve
[email protected]


louis
[email protected]


daniel
[email protected]
    
por Pradip Patil 08.06.2016 / 02:53
1

Se você precisa apenas de um arquivo, mails.txt no seu exemplo, aqui está um script simples.

Ele deve ser exibido especificando o arquivo para seus e-mails. ./script.sh mails.txt

script.sh

#!/bin/bash
filename=""
while read -r line
do
name=${line%@*}
echo "User: ${name} Email: ${line}"
done < "$filename"

Resultado

bcollins@home:~/t$ ./script.sh mails.txt 
User: johnny Email: [email protected]
User: james Email: [email protected]
User: clara Email: [email protected]
User: brandon Email: [email protected]
User: steve Email: [email protected]
User: louis Email: [email protected]
User: daniele Email: [email protected]
    
por bc2946088 04.06.2016 / 14:28