Извлечь первое и второе число после нахождения совпадения в переменной - PullRequest
0 голосов
/ 09 июля 2020

У меня есть файл, который выглядит примерно так:

DATA REGRESSION SECTION                             
TEMPERATURE                  UNITS : C               
AVERAGE ABSOLUTE DEVIATION  = 0.1353242    
AVG. ABS. REL. DEVIATION    = 0.3980671E-01


DATA REGRESSION SECTION                             
PRESSURE                     UNITS : BAR             
AVERAGE ABSOLUTE DEVIATION  = 0.8465562E-12
AVG. ABS. REL. DEVIATION    = 0.8381744E-12


DATA REGRESSION SECTION                             
COMPOSITION LIQUID1 METHANOL UNITS : MOLEFRAC        
AVERAGE ABSOLUTE DEVIATION  = 0.8718076E-02
AVG. ABS. REL. DEVIATION    = 0.3224882E-01

Я хотел бы извлечь первое число после появления строки «ТЕМПЕРАТУРА» в переменную. Затем я хотел бы извлечь второе число после появления строки «ТЕМПЕРАТУРА» в другую переменную. Таким образом, у меня было бы:

var1 = 0.1353242
var2 = 0.3980671E-01

Я пробовал следующее, которое работает по большей части, но не сохраняет десятичную точку или символ 'E'.

var1=$(grep -A 1 TEMPERATURE input.txt)| echo $var1 | sed 's/[^0-9]*//g'

1 Ответ

0 голосов
/ 10 июля 2020

Если кому-то интересно, я нашел следующее решение, которое, кажется, работает:

var1=$(grep -A 1 TEMPERATURE output.txt)
var1=$(sed 's/.*= //g' <<< $var1)
var2=$(grep -A 2 TEMPERATURE input.txt)
var2=$(sed 's/.*= //g' <<< $var2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...