В 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
Инструмент 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