У меня есть два файла.
Первый файл (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
необходима.
Можно считать оба файла вместе линию за линией для получения желаемого вывода. (Я предполагаю, что у Вас нет никаких других нежелательных строк в этих файлах)
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
Если Вам только нужны один файл, 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