Добавить строки из файла в другой файл

У меня есть два файла.

Первый файл (users.txt):

!/bin/bash/

johnny

james

clara

brandon

steve

louis

daniel

Второй файл (mails.txt)

[Первая строка не пуста, файл содержит только почтовый адрес без пробелов]

johnny@email.com

james@email.com

clara@email.com

brandon@email.com

steve@email.com

louis@email.com

daniele@email.com

Как можно добавить под любым именем пользователя 1-го файла его почту из 2-го файла? Я думаю, что команда sed необходима.

1
задан 14 June 2016 в 08:59

2 ответа

Можно считать оба файла вместе линию за линией для получения желаемого вывода. (Я предполагаю, что у Вас нет никаких других нежелательных строк в этих файлах)

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

done<users.txt 3<mails.txt

users.txt, читается с помощью стандартного входного дескриптора файла 0

mails.txt, читается с помощью нашего данного дескриптора файла 3

Вывод:

johnny
johnny@email.com


james
james@email.com


clara
clara@email.com


brandon
brandon@email.com


steve
steve@email.com


louis
louis@email.com


daniel
daniele@email.com
2
ответ дан 14 June 2016 в 08:59

Если Вам только нужны один файл, mails.txt в Вашем примере, вот простой сценарий.

Это предназначено, чтобы быть, выполнил specifing файл на Ваши электронные письма. ./script.sh mails.txt

Вывод script.sh

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

bcollins@home:~/t$ ./script.sh mails.txt 
User: johnny Email: johnny@email.com
User: james Email: james@email.com
User: clara Email: clara@email.com
User: brandon Email: brandon@email.com
User: steve Email: steve@email.com
User: louis Email: louis@email.com
User: daniele Email: daniele@email.com
1
ответ дан 14 June 2016 в 08:59

Другие вопросы по тегам:

Похожие вопросы: