Следующий конвейер должен работать нормально при условии, что в virtuser_NNN именах нет обратной косой черты:
tbl=/etc/mail/virtusertable
pw=/etc/dovecot/dovecot.passwd
cut -d: -f1 "$pw" |
grep -Fnf- "$tbl"|
sed -e's|:.*/\(.*\)|s/:nouser/:\1/|' |
sed -f- "$tbl"
Он будет:
сначала вырезать
все, кроме первой последовательности любых not -colon символы для каждой строки dovecot.passwd
grep
for -F
ixed-string соответствует результатам в virtusertable
s ///
] ub замените все, кроме номера строки и последней встречающейся последовательности символов без косой черты из этих результатов в строку вида:
[LINENO]
s /: nouser /:
без косой черты
/
, наконец, используют , который выводит как sed
скрипт против virtusertable