LINUX.ORG.RU

grep или чем ещё можно выбрать все строки файла1 из файла2?

 


0

1

Задача нужно выбрать из файла2 строки c email:fio из файла1

в файле2 строки с емэйлом и фио, а в файле1 только емэйлы разделитель :

пример файлов

файл2 email:fio

vasya@mail.ru:Vasya

petya@list.ru:Petr Ivanov

sasha@bk.ru:Sasha S.

файл1 email

vasya@mail.ru

petya@list.ru

blabla@bla.ru

Да comm, только оба файла должны быть сортированы, так что можно работать с их сортированными копиями, плюс строки должны быть уникальны.

anonymous
()

а man grep был хотя бы по диагональки пролистан?

anonymous
()

join, как вариант(им одним, разумеется, не обойдётся)

Deleted
()
% cat f1 f2 
dummy@dumm2.ru:dontprintme
vasya@mail.ru:Vasya
petya@list.ru:Petr Ivanov
sasha@bk.ru:Sasha S.
dummy@dummy.ru:dummy
vasya@mail.ru
petya@list.ru
blabla@bla.ru
% awk 'FNR==NR { dict[$1]++;next} FS=":" {if ($1 in dict) print $0}' f2 f1                                    [130] 
vasya@mail.ru:Vasya
petya@list.ru:Petr Ivanov

Оно? A

grep -oFf f2 f1 
слишком просто и потому не интересно ))?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.