Как измерить это, насколько время активное окно открыто?

В awk Вы сделали бы это следующим образом

awk '/pattern/{nr[NR]; nr[NR+4]}; NR in nr' file > new_file`

или

awk '/pattern/{print; nr[NR+4]; next}; NR in nr' file > new_file`

Объяснение

Первое решение находит все строки тем соответствием pattern. Когда это находит соответствие, это хранит рекордное число (NR) в массиве nr. Это также хранит 4-ю запись от NR в том же массиве. Это сделано nr[NR+4]. Каждая запись (NR) затем проверяется, чтобы видеть, присутствует ли это в nr массив, раз так запись печатается.

Второе решение работает по существу тот же путь, кроме тех случаев, когда это встречается с th e pattern это печатает ту строку и затем хранит 4-ю запись перед ним в массиве nr, затем переходит к следующей записи. Затем, когда awk обнаружение эта 4-я запись NR in nr блок будет выполняться и распечатает эти +4 записи там после.

Пример

Вот файл данных в качестве примера, sample.txt.

$ cat sample.txt 
1
2
3
4 blah
5
6
7
8
9
10 blah
11
12
13
14
15
16

Используя 1-е решение:

$ awk '/blah/{nr[NR]; nr[NR+4]}; NR in nr' sample.txt 
4 blah
8
10 blah
14

Используя 2-е решение:

$ awk '/blah/{print; nr[NR+4]; next}; NR in nr' sample.txt 
4 blah
8
10 blah
14
4
27.06.2014, 17:14
2 ответа

Инструмент arbtt (link1 и link2) звучит так, как вы хотите.

выдержка #1

Автоматический отслеживатель времени, основанный на правилах, является демоном рабочего стола, который работает в фоновом режиме и каждую минуту записывает, какие окна открыты на вашем рабочем столе, каковы их названия, какие из них активны. Сопровождаемая программа статистики позволяет получать информацию из этого лог-файла, т.е. сколько времени вы проводите с электронной почтой, или какие проекты являются вашими самыми большими тратами времени. Отображение от необработанных заголовков окон до разумных "тегов" осуществляется с помощью конфигурационного файла с мощным синтаксисом. Смотрите документацию для более детальной информации.

отрывок #2

arbtt, с другой стороны, является трекером времени, который убирается с дороги. Его основной компонент (arbtt-capture) бесшумно захватывает данные о том, что вы делаете, полностью автономно. Взаимодействие не требуется, отвлечение внимания невозможно. Эта информация постоянно хранится в лог-файле. Отдельный инструмент (arbtt-stats) позволяет вам исследовать эти данные, в любое удобное для вас время, используя простые текстовые правила.

Изначально вам нужно настроить файл правил, который arbtt-capture, демон, запускает, который собирает статистику по различным приложениям во время их запуска. Позже вы можете использовать другой инструмент arbtt-stat, чтобы получить "отчет" об использовании.

And here's the corresponding output of arbtt-stats -c "Program":

Statistics for category "Program"
=================================
__________________Tag_|_________Time_|_Percentage_
      Program:Firefox |  8d06h20m00s |      49.01
Program:Google Chrome |  3d15h24m00s |      21.60
  Program:Text editor |  1d04h04m00s |       6.94
        Program:Skype |    13h55m00s |       3.44
     Program:Terminal |     9h22m00s |       2.31
   Program:PDF reader |     6h10m00s |       1.52
      Program:Desktop |     5h13m00s |       1.29
 Program:File browser |     4h11m00s |       1.03
 (53 entries omitted) |    22h59m00s |       5.68
2
27.01.2020, 21:00

Вы также можете попробовать MyTIme, этот проект собирается с той же целью, что и arbtt.

enter image description here

0
27.01.2020, 21:00

Теги

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