У меня есть файл с содержимым:
file.txt:
Iteration 1
RAM: +456ms
Cache: +142ms (total +417ms)
Iteration 2
Spec: +152ms
Cache: +149ms (total +413ms)
Iteration 3
RAM: +184ms
Spec: +172ms
Searchms: +131ms (total +385ms)
First launch 4
RAM: +149ms
Searchms: +188ms
В этом файле между каждыми First launch
содержимое может быть разным, оно не исправлено (например:Первый запуск 3 содержит три элемента, а первый запуск 2 содержит только 2 элемента), поэтому любое число содержимого может находиться между шаблоном First launch
, который неизвестен в начале.
Ожидаемый результат:
RAM 456 184 149
Cache 142 149
Spec 152 172
Searchms 131 188
Из-за незнания точного подхода я попробовал этот код.
Мой код:
for i in {1..4}
do
awk "/First launch $i/{flag=1;next} /First launch $((i+1))/{flag=0} flag" file.txt> fl$i.txt
sed -i 's/\+//g' fl$i.txt
sed -i 's/://g' fl$i.txt
sed -i 's/(.*//g' fl$i.txt
sed -i 's/ms//g' fl$i.txt
awk '{print $1 "\t" $2}' fl$i.txt
done
У меня есть две проблемы: я генерирую файл для каждого шаблоначто неправильно.Также я хотел удалить ms
через некоторое время, но он также удаляет ms
из имени шаблона (например: Searchms to Search)
Вывод:
fl1.txt:
RAM 456
Cache 142
fl2.txt :
Spec 152
Cache 149
fl3.txt :
RAM 184
Spec 152
Search 131
fl4.txt :
RAM 149
Search 188
Пожалуйста, предложите мнеподход для получения ожидаемого результата без генерации какого-либо дополнительного файла с ограничением удаления ms
по истечении времени.