У меня большой файл с повторяющимся шаблоном из 5 строк, начинающимся с отметки даты. Я пытаюсь переместить (относительные) строки 4 и 5 в конец строк 2 и 3 соответственно:
текущий вывод:
Mon Mar 2 16:47:14 UTC 2020
1 90 93090 1024 0 0 0 93090|
9 73 74877 1024 0 0 0 74877|
Dirty Cache: 860160 KB
Dirty Cache: 0 KB
Mon Mar 2 16:47:15 UTC 2020
1 68 69680 1024 0 0 0 69680|
9 83 85838 1024 0 0 0 85838|
Dirty Cache: 860160 KB
Dirty Cache: 0 KB
Mon Mar 2 16:47:16 UTC 2020
1 66 67794 1024 0 0 0 67794|
9 67 68806 1024 0 0 0 68806|
Dirty Cache: 860160 KB
Dirty Cache: 0 KB
Mon Mar 2 16:47:17 UTC 2020
1 42 43424 1024 0 0 0 43424|
9 47 48473 1024 0 0 0 48473|
Dirty Cache: 860160 KB
Dirty Cache: 0 KB
Желаемый вывод со значениями грязного кэша на конечные строки, начинающиеся с '1' и '9':
Mon Mar 2 16:47:14 UTC 2020
1 90 93090 1024 0 0 0 93090| Dirty Cache: 860160 KB
9 73 74877 1024 0 0 0 74877| Dirty Cache: 0 KB
Mon Mar 2 16:47:15 UTC 2020
1 68 69680 1024 0 0 0 69680| Dirty Cache: 860160 KB
9 83 85838 1024 0 0 0 85838| Dirty Cache: 0 KB
Mon Mar 2 16:47:16 UTC 2020
1 66 67794 1024 0 0 0 67794| Dirty Cache: 860160 KB
9 67 68806 1024 0 0 0 68806| Dirty Cache: 0 KB
Mon Mar 2 16:47:17 UTC 2020
1 42 43424 1024 0 0 0 43424| Dirty Cache: 860160 KB
9 47 48473 1024 0 0 0 48473| Dirty Cache: 0 KB
Этот вывод генерируется после печати date
и последующего зацикливания проприетарной команды для получения числовых значений c:
while sleep 1; do date && proprietary 'numerical values command' && proprietary 'dirty cache command 1' && proprietary 'dirty cache command 9'; done >2020-03-02_stats.txt
... затем с помощью некоторого basi c grep опустить заголовки столбцов и вывести числовые значения от 2 до 8.
К сожалению, я не могу отделить вывод числовых значений с помощью используемой команды, т. Е. Вывести выходные данные '1', а затем очистить значения кэша для '1', что сделало бы эту задачу простой для sed.
Однако из-за нескольких задействованных строк я не вижу, как правильно их отсортировать в функции пространства шаблонов sed. Я предполагаю, что я должен использовать awk на этом этапе, но я не уверен, как справиться с этим. какие-нибудь советы?