我有两个文件。
第一个文件(users.txt
):
!/bin/bash/
johnny
james
clara
brandon
steve
louis
daniel
第二个文件 ( mails.txt
)
[第一行不为空,文件只包含邮件地址,无空格]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
我怎样才能将第二个文件中的邮件添加到第一个文件的任何用户名下?我认为sed
需要该命令。
答案1
您可以逐行阅读这两个文件以获得所需的输出。 (我假设这些文件中没有任何其他不需要的行)
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
[email protected]
james
[email protected]
clara
[email protected]
brandon
[email protected]
steve
[email protected]
louis
[email protected]
daniel
[email protected]
答案2
如果您只需要一个文件,即示例中的 mails.txt,这里有一个简单的脚本。
它旨在通过向您的电子邮件指定文件来运行。./script.sh mails.txt
脚本
#!/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: [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]