↑↑↑

↓↓↓
Флаг России Флаг Великобритании
Баннер Недвижимость в Коста-дель-Соль
🏠 | 💻 PC | IT-Helpdesk |

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

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

Основные команды Sed

Замена слова в файле

Предположим, что у нас есть файл string.txt следующего содержания

Here is a String
Here is an Integer
Here is a Float

Мы хотим заменить слово Here на There

sed 's/Here/There/'

Результат:

There is a String
There is an Integer
There is a Float

Та же замена, но с выводом в новый текстовый файл, который мы назовём sed_result:

sed 's/Here/There/' > sed_result.txt


Отбросить всё, что левее определённого слова



Предположим, что у нас есть файл string.txt следующего содержания

Here is a String it has a Name
Here is an Integer it has a Name
Here is a Float it has a Name

Мы хотим отбросить всё, что находится левее слова it, включая слово it, и записать в файл.

sed 's/^.*it//' > sed_result.txt

^ означает, что мы стартуем с начала строки Результат:

 has a Name
 has a Name
 has a Name

Для доступности объясню синтаксис сравнив две команды. Посмотрите внимательно, когда мы заменяем слово Here на There. There находится между двумя слэшами. Раскрашу их для наглядности в зелёный и красный.

sed 's/Here/There/'

А когда мы хотим удалить что-то, мы сначала описываем, что мы хотим удалить. Например, всё от начала строки до слова it.

Теперь в правой части условия, где раньше была величина на замену, мы ничего не пишем, т.е. заменяем на пустое место. Надеюсь, логика понятна.

sed 's/^.*it//' > sed_result.txt


Отбросить всё, что правее определённого слова



Предположим, что у нас есть файл string.txt следующего содержания

Here is a String / it has a Name
Here is an Integer / it has a Name
Here is a Float / it has a Name

Мы хотим отбросить всё, что находится правее слова is, включая слово is, и записать в файл.

sed 's/is.*//' > sed_result.txt

Результат:

Here
Here
Here


Экранирование символов в sed



Специальные символы экранируются с помощью \ Предположим, что у нас есть файл string.txt следующего содержания

Here is a String / it has a Name
Here is an Integer / it has a Name
Here is a Float it / has a Name

Мы хотим отбросить всё, что находится левее /a, включая /a, и записать в файл.

sed 's/^.*/a//' > sed_result.txt

В результате получим ошибку

sed: -e expression #1, char 15: unknown option to `s'

Чтобы команда заработала нужно добавить \ перед /

sed 's/^.*\/a//' > sed_result.txt

Результат:

Here is a String
Here is an Integer
Here is a Float


Два условия одновременно в Sed



Предположим, что у нас есть файл string.txt следующего содержания

Here is a String /b it has a Name
Here is an Integer /b it has a Name
Here is a Float /b it has a Name

Мы хотим отбросить всё, что находится левее /b, включая /b, и всё, что правее has.

Таким образом, в каждой строчке должно остаться только слово it.

Нужно учесть необходимость экранирования специального символа / а также мы хотим направить вывод в файл.

sed 's/^.*\/b// ; s/has.*//' string.txt > sed_result.txt

Результат:

it
it
it


Удаление переходов на новую строку

sed ':a;N;$!ba;s/\n//g' file ;




Основные команды AWK

Вывести только определённые столбцы

Предположим, что у нас есть файл string.txt следующего содержания

Here is a String it has a Name
Here is an Integer it has a Name
Here is a Float it has a Name

Мы хотим отбросить всё, что находится левее слова it, включая слово it, и записать в файл.

Аналогичную операцию мы проделывали с помощью sed в этом примере.

awk '{print $6,$7,$8}' > awk_result.txt

$6 означает, что мы выводим элемент из шестого столбца. Результат:

 has a Name
 has a Name
 has a Name

С помощью awk мы можем вывести произвольные столбцы:

awk '{print $1,$3,$7,$8}' > awk_result.txt

Результат:

Here a a Name
Here an a Name
Here a a Name

Литература

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

Пока что эта статья плохо организована.

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

Чтобы значительно сократить время, затрачиваемое на обработку нужно написать программу, которая из текстовых файлов достает только определённые столбцы или строки.
Т.к. я языками программирования пока владею крайне слабо спросил совет у Синего.
Он предложил использовать различные текстовые препроцессоры. Первое что он упоминул - 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-файла - я не знаю.

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

1 🖧 Удалённый рабочий стол
2 - Доступ по RDP через SSH туннель под Windows
3 🄭 Доступ к CD приводу через удалённый рабочий стол
4 - Установка Windows на gpt диск
5 - Режим разработчика Windows 10
6 - Добавить скрипт в автозагрузку
7 - Системная переменная окружения PATH
8 - Bash в Windows 10
9 - Batch файлы
10 - Обработка текста: Grep, sed, awk
11 📀 Запись образа с Ultraiso
12 Сочетания клавиш
13 - Список установленных в Windows драйверов
14 🔥 Firewall Windows
15 Проброс портов
Вы нашли то, что искали на сайте?

ДА НЕТ

Или оцените по десятибальной шкале

Если сайт не помог, извиняемся за потраченное время - хочу заверить, что мы стараемся не попадать в нерелевантные запросы, но тем не менее не всегда успеваем обновлять ключевые слова. Ну и контролировать поисковую выдачу, конечно, невозможно.

Например: у нас есть статья про аэропорт Хельсинки и про аэропорт Риги но в выдаче по Риге всё равно статья про Хельсинки.

Если статья Вам помогла, нажимайте ДА. Так мы поймём, что переделывать её не нужно.

Занятно наблюдать в вебвизоре, как люди копируют текст, например вежливого отказа в трудоустройстве на английском но игнорируют кнопку ДА.

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