Текстовые препроцессоры AWK, GREP, SED

Содержание

Текстовые препроцессоры

Эта статья - путеводитель по текстовым препроцессорам

Про каждый из них есть отдельная статья:

По умолчанию я предполагаю, что Вы работаете в Bash под Windows 10

Как установить Bash в Windows 10 подробно описано здесь

↓ Содержание статьи ↓
SED: Замена слова в нескольких файлах одновременно
SED: Отбросить всё, что слева
SED: Отбросить всё, что справа
SED: Экранирование символов
SED: Два условия одновременно
SED: Удаление переходов на новую строку
AWK: Вывести только определённые столбцы
GREP
Литература
Обработка результатов

Литература

Обработка результатов

Далее Вы увидите один из самых старых текстов на этом сайте. Я постарался оформить его так чтобы хоть что-то было понятно. Но работы предстоит ещё много.

Задача стояла следующая: мне во время практики в АЭПе дали программу, которая на выходе выдает информацию о выходе радионуклидов в текстовых файлах.

Чтобы значительно сократить время, затрачиваемое на обработку нужно написать программу, которая из текстовых файлов достает только определённые столбцы или строки.

Т.к. я языками программирования я тогда владел крайне слабо - спросил совет у Синего.

Он предложил использовать различные текстовые препроцессоры. Первое что он упоминул - sed .

В процессе выяснилось, что нужны еще awk и grep . На выходе довольно большой текстовый файл, выложу его кусок

000:00:00 entry into chain 13 cpu time = 0.000 secs SPU PRIN 1 0 1 PARTIT 1 2 4 5 46 69 REAC 234 1000 2235 1000 236 1000 8238 1000 6239 1000 1240 1000 1241 1000 1242 1000 951 1000 952 1000 953 1000 BEGI 000:00:00 entry into chain 14 cpu time = 0.000 secs 000:00:00 entry into chain 15 cpu time = 0.000 secs 000:00:00 entry into chain 12 cpu time = 0.000 secs MACROSCOPIC FISSION X-SECS for materials and cell, last column is cell flux 1 2 3 4 5 6 7 8 9 10 11 gp 1 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.748169E-02 0.473275E-02 gp 2 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.464412E-02 0.201256E-01 gp 3 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.458471E-02 0.257730E-01 gp 4 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.369038E-02 0.246072E-01 gp 5 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.653324E-03 0.142246E-01 gp 6 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02

И так до gp 69, и дальше еще много различных результатов.
Обращаю внимание на строки, которые начинаются с gp. Под каждой из них есть строка-продолжение.
которая не содержит записи gp. Меня интересуют последние числа каждой такой строки - это поток n.

Первое что я делаю - выделяю куски текста, которые содежат нужную мне информацию.

grep -A 140 "MACROSCOPIC FISSION X-SECS for materials and cell, last column is cell flux" REZWI > result.txt

grep -A 140 выделяет 140 строк после контекста "MACROScOPIc…."

Почему 140 - 69 групп по две строчки на группу = 138, плюс заголовок и еще одна не помню для чего ((((

Результатом манипуляции будет текстовый файл result.txt , в котором будет 35 блоков данных
35 - потому что цикл работы реактора разбит на 35 частей каждая из которых в исходном файле
имеет заголовок "MACROScOPIc…." который собственно и ищется с помощью grep.
Вот часть файла result.txt

MACROSCOPIC FISSION X-SECS for materials and cell, last column is cell flux 1 2 3 4 5 6 7 8 9 10 11 gp 1 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.748169E-02 0.473275E-02 gp 2 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.161587E-01 0.464412E-02 0.201256E-01 gp 3 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.159553E-01 0.458471E-02 0.257730E-01 gp 4 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.128689E-01 0.369038E-02 0.246072E-01 gp 5 0.228793E-02 0.2
28793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.228793E-02 0.653324E-03 0.142246E-01 gp 6 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.147051E-02 0.418961E-03 0.823997E-02 gp 7 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.152774E-02 0.434211E-03 0.721812E-02 gp 8 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.164271E-02 0.484217E-03 0.291866E-02 gp 9 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.182526E-02 0.532056E-03 0.999085E-03 gp 10 0.203580E-02 0.203580E-02 0.203580E-02 0.203580E-02 0.203580E-02 0.203580E-02
0.203580E-02 0.203580E-02 0.203580E-02 0.203580E-02 0.203580E-02 0.569540E-03 0.396603E-02 gp 11 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.229674E-02 0.726113E-03 0.702966E-03 gp 12 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.258920E-02 0.728032E-03 0.323297E-02 gp 13 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.299092E-02 0.824071E-03 0.762816E-02 gp 14 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.360061E-02 0.104274E-02 0.526137E-02 gp 15 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.416529E-02 0.41652
9E-02 0.125347E-02 0.765153E-03 gp 16 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.546336E-02 0.144770E-02 0.441727E-02 gp 17 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.657615E-02 0.184687E-02 0.116604E-01 gp 18 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.758966E-02 0.208981E-02 0.419816E-02 gp 19 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.101488E-01 0.213944E-02 -0.721001E-03 gp 20 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.151121E-01 0.393959E-02 0.315228E-03 gp 21 0.231950E-01 0.231950
E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.231950E-01 0.653475E-02 0.197044E-01 gp 22 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.278725E-01 0.792405E-02 0.196770E-01 gp 23 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.492258E-01 0.158210E-01 0.944543E-03 gp 24 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.504478E-01 0.134764E-01 0.670228E-02 gp 25 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 0.594370E-01 -0.942184E-03 -0.134333E-02 gp 26 0.457128E-01 0.457128E-01 0.457128E-01 0.457128E-01 0.457128E-01 0.457128E-01 0.4
57128E-01 0.457128E-01 0.457128E-01 0.457128E-01 0.457128E-01 0.132510E-01 -0.286800E-02 gp 27 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.434699E-01 0.117749E-01 0.468031E-02 gp 28 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.330244E-01 0.101598E-01 0.424557E-02 gp 29 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.283537E-01 0.834460E-02 -0.118826E-02 gp 30 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.134292E-01 0.408619E-02 0.784153E-03 gp 31 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-01 0.197680E-0
1 0.625692E-02 -0.249868E-02 gp 32 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.235127E-01 0.726266E-02 0.256769E-02 gp 33 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.658384E-01 0.168055E-01 0.650789E-02 gp 34 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.129558E+00 0.360350E-01 0.224641E-02 gp 35 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.133164E+00 0.510737E-01 0.270159E-03 gp 36 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.124947E+00 0.399952E-01 -0.161003E-02 gp 37 0.111818E+00 0.111818E+00
0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.111818E+00 0.317198E-01 0.322549E-02 gp 38 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.994409E-01 0.498205E-01 0.533795E-03 gp 39 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.899864E-01 0.261549E-01 -0.595607E-02 gp 40 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.831425E-01 0.238012E-01 0.252756E-02 gp 41 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.784022E-01 0.201829E-01 0.749544E-02 gp 42 0.741777E-01 0.741777E-01 0.741777E-01 0.741777E-01 0.741777E-01 0.741777E-01 0.741777
E-01 0.741777E-01 0.741777E-01 0.741777E-01 0.741777E-01 0.372780E-01 0.102730E-02 gp 43 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.706649E-01 0.216619E-01 0.267829E-02 gp 44 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.698456E-01 0.194601E-01 0.566279E-02 gp 45 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.752847E-01 0.223158E-01 0.714465E-02 gp 46 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.920090E-01 0.229098E-01 -0.635722E-03 gp 47 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.123193E+00 0.
366803E-01 0.637679E-02 gp 48 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.168169E+00 0.472047E-01 0.549588E-02 gp 49 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.209348E+00 0.712533E-01 0.299886E-02 gp 50 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.235552E+00 0.578755E-01 0.148999E-02 gp 51 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.247790E+00 0.714624E-01 0.194720E-02 gp 52 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 0.246235E+00 -0.402602E-01 -0.269331E-03 gp 53 0.233803E+00 0.233803E+00 0.2
33803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.233803E+00 0.844577E-01 0.334404E-03 gp 54 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.229264E+00 0.688412E-01 0.152326E-02 gp 55 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.246461E+00 0.800921E-01 0.166075E-02 gp 56 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.289221E+00 0.890859E-01 0.488075E-02 gp 57 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.344531E+00 0.114049E+00 0.383224E-02 gp 58 0.391285E+00 0.391285E+00 0.391285E+00 0.391285E+00 0.391285E+00 0.391285E+00 0.391285E+00
0.391285E+00 0.391285E+00 0.391285E+00 0.391285E+00 0.114618E+00 0.689195E-02 gp 59 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.432562E+00 0.153633E+00 0.462829E-02 gp 60 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.473186E+00 0.135132E+00 0.897580E-02 gp 61 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.521440E+00 0.165255E+00 0.818273E-02 gp 62 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.579347E+00 0.173404E+00 0.314244E-02 gp 63 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.638942E+00 0.19475
8E+00 0.301028E-02 gp 64 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.702583E+00 0.219884E+00 0.523509E-02 gp 65 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.785706E+00 0.307538E+00 0.248919E-02 gp 66 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.900694E+00 0.279087E+00 0.217688E-02 gp 67 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.107473E+01 0.644333E-01 -0.152397E-02 gp 68 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.139200E+01 0.563751E+00 0.671439E-03 gp 69 0.230418E+01 0.230418E+01 0.230418
E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.230418E+01 0.455581E+00 0.113679E-01 -- MACROSCOPIC FISSION X-SECS for materials and cell, last column is cell flux 1 2 3 4 5 6 7 8 9 10 11 gp 1 0.258125E-01 0.258125E-01 0.258123E-01 0.258129E-01 0.258125E-01 0.258132E-01 0.258141E-01 0.258127E-01 0.258120E-01 0.258131E-01 0.258130E-01 0.787471E-02 0.272665E-02 gp 2 0.161547E-01 0.161547E-01 0.161546E-01 0.161550E-01 0.161547E-01 0.161552E-01 0.161558E-01 0.161548E-01 0.161544E-01 0.161553E-01 0.161551E-01 0.494833E-02 0.109512E-01 gp 3 0.159510E-01 0.159510E-01 0.159508E-01 0.159513E-01 0.159510E-01 0.159515E-01 0.159522E-01 0.159511E-01 0.159506E-01 0.159516E-01 0.159514E-01 0.487487E-02 0.228032E-01 gp 4 0.128648E-01 0.128648E-01 0.128646E-01 0.128651E-01
0.128647E-01 0.128652E-01 0.128659E-01 0.128649E-01 0.128644E-01 0.128654E-01 0.128652E-01 0.393462E-02 0.242933E-01 gp 5 0.228478E-02 0.228472E-02 0.228453E-0

Выложил так же как вижу в блокноте сам.

Шаг 2

for /L %%i in (1,1,9) do grep -A 1 "gp %%i" result.txt >> result%%i.txt
for /L %%i in (10,1,69) do grep -A 1 "gp %%i" result.txt >> result%%i.txt

Выделяем из файла result.txt 69 файлов - в каждом только одна группа (например только gp1) по 35 "двойных строк.
Результатом будет 69 файлов со следующим содержанием:

gp 1 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.258187E-01 0.748169E-02 0.473275E-02 -- gp 1 0.258125E-01 0.258125E-01 0.258123E-01 0.258129E-01 0.258125E-01 0.258132E-01 0.258141E-01 0.258127E-01 0.258120E-01 0.258131E-01 0.258130E-01 0.787471E-02 0.272665E-02 -- gp 1 0.257867E-01 0.257854E-01 0.257839E-01 0.257850E-01 0.257851E-01 0.257862E-01 0.257887E-01 0.257886E-01 0.257885E-01 0.257898E-01 0.257873E-01 0.786697E-02 0.272804E-02 -- gp 1 0.257448E-01 0.257416E-01 0.257380E-01 0.257399E-01 0.257407E-01 0.257425E-01 0.257477E-01 0.257495E-01 0.257502E-01 0.257517E-01 0.257457E-01 0.785425E-02 0.273096E-02 -- gp 1 0.256913E-01 0.256855E-01 0.256793E-01 0.256823E-01 0.256839E-01 0.256867E-01 0.256953E-01 0.256995E-01 0.257012E-01 0.257031E-01 0.256926E-01 0.783803E-02 0.273307E-02 -- gp 1 0.256258E-01 0.256170E-01 0.256075E-01 0
.256118E-01 0.256145E-01 0.256185E-01 0.256312E-01 0.256383E-01 0.256413E-01 0.256436E-01 0.256275E-01 0.781827E-02 0.273425E-02 -- gp 1 0.255582E-01 0.

Шаг 3

for /L %%i in (1,1,9) do grep -v "gp %%i" result%%i.txt >> result%%ia.txt
for /L %%i in (10,1,69) do grep -v "gp %%i" result%%i.txt >> result%%ia.txt

Удаляем строки, которые начинаются с gp - все равно там нет нужной информации
Как результат имеем по прежнему 69 файлом типа result1a.txt

0.258187E-01 0.258187E-01 0.258187E-01 0.748169E-02 0.473275E-02 -- 0.258120E-01 0.258131E-01 0.258130E-01 0.787471E-02 0.272665E-02 -- 0.257885E-01 0.257898E-01 0.257873E-01 0.786697E-02 0.272804E-02 -- 0.257502E-01 0.257517E-01 0.257457E-01 0.785425E-02 0.273096E-02 -- 0.257012E-01 0.257031E-01 0.256926E-01 0.783803E-02 0.273307E-02 -- 0.256413E-01 0.256436E-01 0.256275E-01 0.781827E-02 0.273425E-02 -- 0.255796E-01 0.255822E-01 0.255603E-01 0.779791E-02 0.273478E-02 -- 0.255170E-01 0.255200E-01 0.254922E-01 0.777737E-02 0.273353E-02 -- 0.254707E-01 0.254740E-01 0.254417E-01 0.776241E-02 0.273621E-02 -- 0.254713E-01 0.254746E-01 0.254423E-01 0.776458E-02 0.276677E-02 -- 0.254639E-01 0.254673E-01 0.254344E-01 0.776210E-02 0.277126E-02 -- 0.254302E-01 0.254338E-01 0.253981E-01 0.775109E-02 0.277047E-02 -- 0.253763E-01 0.253802E-01 0.253398E-01 0.773347E-02 0.276891E-02 -- 0.253082E-01 0.253126E-01 0.252664E-01 0.771131E-02
0.276595E-02 -- 0.252259E-01 0.252307E-01 0.251774E-01 0.768457E-02 0.276183E-02 -- 0.251475E-01 0.251529E-01 0.250927E-01 0.765916E-02 0.275646E-02 -- 0.250686E-01 0.250745E-01 0.250072E-01 0.763371E-02 0.275172E-02 -- 0.250104E-01 0.250167E-01 0.249441E-01 0.761519E-02 0.275157E-02 -- 0.250112E-01 0.250175E-01 0.249449E-01 0.761746E-02 0.278151E-02 -- 0.250048E-01 0.250111E-01 0.249380E-01 0.761530E-02 0.278501E-02 -- 0.249758E-01 0.249822E-01 0.249070E-01 0.760593E-02 0.278255E-02 -- 0.249296E-01 0.249364E-01 0.248576E-01 0.759105E-02 0.277882E-02 -- 0.248717E-01 0.248787E-01 0.247956E-01 0.757238E-02 0.277362E-02 -- 0.248017E-01 0.248091E-01 0.247207E-01 0.754993E-02 0.276745E-02 -- 0.247329E-01 0.247407E-01 0.246469E-01 0.752789E-02 0.276060E-02 -- 0.246637E-01 0.246718E-01 0.245726E-01 0.750583E-02 0.275417E-02 -- 0.246126E-01 0.246211E-01 0.245176E-01 0.748978E-02 0.275337E-02 -- 0.246133E-01 0.246218E-01 0.245184E-01
0.749204E-02 0.278428E-02 -- 0.246102E-01 0.246186E-01 0.245150E-01 0.749093E-02 0.278679E-02 -- 0.245961E-01 0.246046E-01 0.245002E-01 0.748635E-02 0.278328E-02 -- 0.245737E-01 0.245823E-01 0.244766E-01 0.747907E-02 0.277875E-02 -- 0.245455E-01 0.245542E-01 0.244468E-01 0.746991E-02 0.277283E-02 -- 0.245113E-01 0.245202E-01 0.244106E-01 0.745886E-02 0.276605E-02 -- 0.244744E-01 0.244834E-01 0.243713E-01 0.744696E-02 0.275907E-02 -- 0.244372E-01 0.244463E-01 0.243316E-01 0.743503E-02 0.275258E-02

Шаг 4


for /L %%i in (1,1,69) do grep -v -e "--" result%%ia.txt >> result%%ib.txt

Удаляем знаки "--"

Шаг 5

for /L %%k in (1,1,69) do awk "{print $5}" result%%kb.txt >> result%%kc.txt


Выделяем в каждом из 69 файлов пятые слова в строчках.
Получаем 69 файлов в каждом из которых столбец из 35 значений.
Например result1c.txt

0.473275E-02 0.272665E-02 0.272804E-02 0.273096E-02 0.273307E-02 0.273425E-02 0.273478E-02 0.273353E-02 0.273621E-02 0.276677E-02 0.277126E-02 0.277047E-02 0.276891E-02 0.276595E-02 0.276183E-02 0.275646E-02 0.275172E-02 0.275157E-02 0.278151E-02 0.278501E-02 0.278255E-02 0.277882E-02 0.277362E-02 0.276745E-02 0.276060E-02 0.275417E-02 0.275337E-02 0.278428E-02 0.278679E-02 0.278328E-02 0.277875E-02 0.277283E-02 0.276605E-02 0.275907E-02 0.275258E-02

Шаг 6

for /L %%j in (1,1,35) do for /L %%i in (1,1,69) do sed -n "%%jp" result%%ic.txt >> result%%jd.txt

Сначала собираем 1е строки по всем 69 файлам и записываем в result1d.txt - это спектр нейтронов на первом этапе работы реактора. Далее - еще 34 файла по 69 значений - для следующих этапов.

Шаг 7

for /L %%i in (1,1,69) do del result%%i.txt for /L %%i in (1,1,69) do del result%%ia.txt for /L %%i in (1,1,69) do del result%%ib.txt for /L %%i in (1,1,69) do del result%%ic.txt

Удаляем все лишнее

Шаг 8

Я собираюсь построить графики в MS Excel Следовательно мне хотелось бы заменить точки на запятые

for /L %%i in (1,1,35) do sed "s/\./\,/g" result%%id.txt >> result%%ie.txt

И ещё немного прибираемся

for /L %%i in (1,1,69) do del result%%id.txt

Шаг 9

Нужно загнать эти 35 файлов в Excel и желательно построить графики автоматически как это сделать пока неясно. При отправке в Excel жалобы на формат. Как делать макрос, а тем более, управляемый из bat-файла - я на тот момент не знал.

Сейчас Вы можете изучить эту тему в статье Примеры программ VBA в Excel

Похожие статьи:

LaTeX RDP SSH туннель
Web 🖧 Бесплатные программы
CSS HTML
IT Helpdesk 🛠 MS Office
GIT SVN 🐢
Nodejs NPM
Gulp PostCSS
Тестирование ПО 🔨
SOAP UI Тестирование на Python
Тестирование API Clumsy 0.2
JUnit JMeter
Selenium
Selenium + Java Selenium + Python
Программирование 🖳
PHP JavaScript
Python Ruby
C C++
Visual Studio GCC
Java Maven
SED AWK
GREP
Linux 🐧 Windows
OpenBSD Docker
VI Sublime Editor
Visual Studio Code
Postgres Базы данных ⟖
Flask Как писать инструкции
GlassFish Payara
Maven Информационная безопасность
PSTools Telnet
Квантовый компьютер JSON

Автор статьи: Андрей Олегович

Похожие статьи
Linux
Windows
Тестирование
make
Bash
C
C++
Python
PHP
DevOps
Docker

Поиск по сайту

Канал @aofeed Чат @aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.com
Пишите на info@aredel.com если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: