Как показать непрочитанный счет электронной почты IMAP в Byobu

Еще одна awk-версия:

awk '/NO.*[[:blank:]]LB/,/INTERNAL COORDINATES/ { 
        if($1~/[0-9]/){count[$2]++;}} 
      END {for(i in count){printf "%s%s",i,count[i]}print ""} ' file 

Это своего рода смесь между ответом Серга и Хаосом. Он будет работать только между строками, соответствующими NO.*[[:blank:]]LB и INTERNAL COORDINATES. Массив count учитывает только строки, первое поле которых является числом.

Если ваш файл точно так же, как вы показываете, где последовательные блоки данных разделены пустой строкой, вы можете использовать режим абзаца Perl, который обрабатывает абзацы как строки: [ ! d3]

perl -00ne 'next unless /CARTESIAN COORDINATES \(A\.U\.\)/; 
            $count{$_}++ for (/\s+\d+\s+(\w+)\s/g); 
            print "$_$count{$_}" for keys(%count)' file 

Пояснение

-00: включить режим абзаца; next unless /CARTESIAN COORDINATES \(A\.U\.\)/; пропустить этот абзац, если он не соответствует CARTESIAN COORDINATES (A.U.); $count{$_}++ for (/\n\s+\d+\s+(\w+)\s/g): регулярное выражение ищет один или несколько пробельных символов (\s+), за которыми следуют одна или несколько цифр (\d+), один или несколько символов пробелов, а затем один или несколько символов слова (\w+) за которым следует символ пробела. Это должно идентифицировать все элементы. %count - хэш, ассоциативный массив. Он имеет ключи, и каждый ключ связан со значением. [F16] сохранит каждое из совпадений регулярного выражения выше как ключ в этом хэше и увеличит его значение на единицу каждый раз, когда он будет найден. Результатом является хэш, который хранит элементы и количество раз, когда каждый найден. print "$_$count{$_}" for keys(%count): для каждого из элементов (клавиши хеша %count) напечатайте элемент и количество раз, когда оно было найдено.

Запустите файл вашего примера, это возвращает:

$ perl -00ne 'next unless /CARTESIAN COORDINATES \(A\.U\.\)/; 
            $count{$_}++ for (/\s+\d+\s+(\w+)\s/g); 
            print "$_$count{$_}" for keys(%count)' file 
C5H2$

У этого нет последней строки новой строки, поэтому вы можете добавить его с помощью:

$ perl -00ne 'next unless /CARTESIAN COORDINATES \(A\.U\.\)/; 
                $count{$_}++ for (/\s+\d+\s+(\w+)\s/g); 
                print "$_$count{$_}" for keys(%count); print "\n"' file 
C5H2
3
задан 22 May 2011 в 20:49

9 ответов

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 25 July 2018 в 21:52
  • 1
    спасибо, знаете ли вы, может ли альпийский вариант быть использован для этого? – type 10 June 2011 в 18:14

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 26 July 2018 в 17:22

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 31 July 2018 в 13:47

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 2 August 2018 в 03:27

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 4 August 2018 в 19:24

Вам необходимо настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. Https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 6 August 2018 в 03:35

Вам нужно настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. [D0] https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 7 August 2018 в 21:25

Вам нужно настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. [D0] https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 10 August 2018 в 09:43

Вам нужно настроить свой почтовый клиент системы, входящий в пакет mailutils, для получения почты из вашей онлайн-учетной записи (например, gmail). В прошлый раз, когда я проверял, что функция уведомления по почте в byobu была преждевременной. См. [D0] https://answers.launchpad.net/byobu/+question/143784

1
ответ дан 13 August 2018 в 15:55
  • 1
    спасибо, знаете ли вы, может ли альпийский вариант быть использован для этого? – type 10 June 2011 в 18:14

Другие вопросы по тегам:

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