Как получить последовательность и создать другой файл? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть файл вывода (geom_dist_output) из моих предыдущих расчетов, который содержит «Modo: 1», «Modo: 2», «Modo: 3» до «Modo: 90». Между «Modo: 1» и «Modo: 2» есть несколько точек, поэтому для поиска данных, которые я использую:

для режима 1;

grep -A100000 "Modo:    1"  geom_dist_output | grep -B100000 "Modo:    2" | egrep -v "Modo:    2" > Mode-1

для режима 2;

grep -A100000 "Modo:    2"  geom_dist_output | grep -B100000 "Modo:    3" | egrep -v "Modo:    3" > Mode-2

Аналогично до 90.

Есть ли способ или последовательность, в которой я могу grep другой Mode-i (i = 1,2..90) и создавать другие файлы.

1 Ответ

0 голосов
/ 17 апреля 2019

Если вы хотите один режим - $ i:

sed -n "/Modo:    $i/,/Modo:/{/Modo:/b;p}" geom_dist_output >Mode-$i

Здесь sed печатает строки от Modo: $i до следующих Modo:, за исключением Modo: строк.

Если вам нужны все файлы Mode-1..90 одновременно, и если у вас есть csplit с опцией --suppress-matched:

csplit -fMode- --suppress-matched geom_dist_output /Modo:/ '{*}'
...