Я не уверен, что то, что вы хотите, это то, чего вы действительно хотите. Я отмечаю, что каждый блок имеет Дата в качестве первого столбца и что в вашем примере значения в этом столбце одинаковы во всех блоках. Если то, что вы действительно хотите в выводе, это каждая дата, за которой следуют все строки, не относящиеся к дате, для этой даты в каждом блоке:
Date Years … FWIP 01 января 2017 0 217100,9
Затем просто используйте Perl, чтобы разбить ваши данные на отдельные файлы (новый файл каждый раз, когда вы видите строки, не соответствующие \d+\-…\-\d\d\d\d
шаблон регулярного выражения форматов даты VMS) и используйте команду оболочки join, чтобы сделать все остальное в соответствии с этим сообщением именно об этой проблеме
Не пишите код, когда уже есть инструмент для решить свою специализированную, но очень распространенную проблему!
Хорошо, похоже, вот способ сделать это. Выглядит мерзко, но работает:
#!/bin/bash
for i in {1..25}
do
{ time dd if=/dev/zero of=/home/user/test.img bs=1G count=10 oflag=direct >& / dev/null ; } 2>> /tmp/dd_timed.txt && { time rm /home/user/test.img >& /dev/null ; } 2>> /tmp/rm_timed.txt
done