Вgawk
(используются ERE, аналогичныеgrep -E
):
gawk '/pattern/ && RT' file
RT
в gawk
содержит то, что соответствует RS
разделителю записей.Со значением по умолчаниюRS
(\n
)это будет \n
, за исключением последней записи без разделителя -, где RT
будет пустым.
Сperl
(perl RE, аналогичными grep -P
, если они доступны):
perl -ne 'print if /pattern/ && /\n\z/'
Обратите внимание, что в отличие от gawk
или grep
, perl
по умолчанию работает с байтами, а не с символами. Например, его .
оператор регулярного выражения будет соответствовать каждому из двух байтов UTF -8 -в кодировке £
. Чтобы он работал с символами в соответствии с определением символов локали, например awk
/ grep
, вы должны использовать:
perl -Mopen=locale -ne 'print if /pattern/ && /\n\z/'