На самом деле, это выглядит как идеальная работа для Awk. Теперь, как и большинство людей, я скажу: «Я не специалист по Awk», прежде чем продолжить ...
awk -F : '{print $5}' /etc/passwd
получит 5-е поле, где ':' - это разделитель полей из / etc / passwd - это, вероятно, 5-е поле, которое вы хотите.
awk -F , '{print $1}'
получит 1-е поле из стандартного ввода, где ',' он был разделителем, поэтому
awk -F : '{print $5}' /etc/passwd | awk -F , '{print $1}'
получит первое разделенное запятыми поле (поле «Имя») из пятого разделенного двоеточиями поля (поля со всеми подобными словами!) В вашем файле / etc / passwd.
Отрегулируйте печать $ 1, чтобы получить поле с вашими электронными письмами в нем.
Несомненно, в Awk есть возможность сделать это без трубы. Я использую Awk для разделения полей в вещах и не так много другого. Я нахожу это запутанным, и это от кого-то, кто любит регулярные выражения ...