Копировать строки, которые имеют определенный характер и вставьте их в новый файл

Вы можете использовать действие HOLD, возвращаемое управлением доступом.

Например:

/etc/postfix/main.cf:
smtpd_recipient_restrictions =
    check_sender_access hash:/etc/postfix/sender_access

/etc/postfix/sender_access:
sender1@mydomain.com     HOLD
sender2@mydomain.com     HOLD

Затем вы можете управлять освобождением удержания с помощью команды postsuper.

См. Следующие дополнительные сведения:

http://www.postfix.org/access.5.html Обратите особое внимание на описание действия HOLD.

http://www.postfix.org/postsuper.1.html

0
09.07.2018, 01:49
2 ответа

Использованиеgrep:

grep '^C[nx]' file >newfile

Это позволит выделить строки, которые начинают со строкой Cnили Cx, и сохранить эти строки в новый файл с именем newfile.

Это по-прежнему выделит строку, начинающуюся, например, с. Cxxили Cn!.

Использованиеawk:

awk '$1 == "Cn" || $1 == "Cx"' file >newfile

Это приведет к сравнению строк вместо сопоставления с регулярным выражением. Он пропускал только те строки, чей первый столбец, разделенный пробелами -, был точно Cnили Cxи ничего больше.

1
28.01.2020, 02:42
perl -MList::MoreUtils=any -lane '
   print if any { $F[0] eq $_ } qw/Cx Cn/;
' input.txt

Модуль List ::MoreUtils загружается для доступа к подпрограмме any, которая выбирает первое истинное утверждение из множества значений. Данное решение является расширяемым, если вы хотите добавить/изменить первые поля для проверки.

В случае, если вышеуказанный модуль не может быть найден, можно использовать приведенный ниже код:

perl -lane 'for my $e ( qw/Cx Cn/ ) { print,last if $F[0] eq $e }' input.txt
0
28.01.2020, 02:42

Теги

Похожие вопросы