Выбрать строки с двумя вхождениями одного и того же шаблона

Alpine считывает настройки "mailcap" для каждого пользователя из ~ / .mailcap , которые перекрывают общесистемные / etc / mailcap . Так что просто поместите следующую строку в ~ / .mailcap :

application/pdf; evince %s
1
16.02.2019, 03:15
1 ответ

ПОЦЕЛУЙ grepподход:

grep 'jobs waiting: *0.*jobs waiting: *0' file

Инвертируйте, добавив переключатель командной строки -v.

Чередовать сsed-попыткой заменить второй экземпляр и распечатать строку в случае успеха:

sed -n 's/jobs waiting: *0/&/2p' file

Обратно как

sed -n 's/jobs waiting: *0/&/2; t; p' file

Подход Awk -использовать возвращаемое значениеgsub:

awk 'gsub(/jobs waiting: *0/,"&",$0) == 2' file

Инвертировать как

awk 'gsub(/jobs waiting: *0/,"&",$0) != 2' file

(Во всех случаях *0допускает ноль или более пробелов перед 0, что соответствует вашему примеру.)

2
27.01.2020, 23:30

Теги

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