Что-то вроде этого могло бы сработать, но я не уверен, что это хорошая идея в зависимости от вашего варианта использования (не проверено):
while read f2line
do
f1=$(grep $line file1)
[[ ! -z $f1 ]] && echo $f1line
done < file2
Другое возможное решение, если вам нужен более однострочный метод (быстро протестировано ниже) :
grep . file2 | xargs -i^ grep ^ file1
В результате получилось:
root@7Z233W1 (/tmp)# cat f1
John:myemail@gmail.com:johnson123:22hey
Erik:thatwhatsup@gmail.com:johnson133:22hey
Robert:whatsup@gmail.com:johnson123:21hey
Johnnny:bro@gmail.com:johnson123:22hey
root@7Z233W1 (/tmp)# cat f2
1@gmail.com
rsdoge@gmail.com
mynameiscurt@hotmail.com
myemail@gmail.com
root@7Z233W1 (/tmp)# grep . f2 | xargs -i^ grep ^ f1
John:myemail@gmail.com:johnson123:22hey
Как указано в руководстве grub , команда chainloader не работает при включенной безопасной загрузке.