0
В моей программе мне нужно сравнить значение между столбцом.У меня есть файл ввода, который выглядит так:
- Сравнение между
$3
и$1
, Печать только максимальное значение из$1
- Сравнение между
$3
и$2
, Печать только мин значение от$2
- также сравнить с
$1[i]
и$1[i+1]
Данные:
150; 145.15; 148;
149.43; 143.62; 148;
147.45; 141.95; 148;
147.09; 141.46; 148;
147.59; 141.49; 148;
147.22; 141.41; 148;
147.34; 141.33; 148;
147.54; 141.32; 148;
148.23; 141.36; 148;
149.04; 141.24; 148;
Вот код:
#!/bin/bash
awk '
BEGIN {
FS=";";
}
{
if(NR>1)
{
Max = $1
Min = $2
Com = $3
if(Max>Com)
{
NMax = Max
if(Max>Com && NMax<Max)
{
NMax = Max
}
}
if(Com>Min)
{
NMin = Min
if(Min<Com && NMin<Min)
{
NMin = Min
}
}
}
if(NR>1)
printf "%9.2f;%9.2f;%9.2f;%9.2f;%9.2f;\n", $1,$2,$3,NMax,NMin
}' data.txt > out.txt
Выходной сигнал:
149.43; 143.62; 148.00; 149.43; 143.62;
147.45; 141.95; 148.00; 149.43; 141.95;
147.09; 141.46; 148.00; 149.43; 141.46;
147.59; 141.49; 148.00; 149.43; 141.49;
147.22; 141.41; 148.00; 149.43; 141.41;
147.34; 141.33; 148.00; 149.43; 141.33;
147.54; 141.32; 148.00; 149.43; 141.32;
148.23; 141.36; 148.00; 148.23; 141.36;
149.04; 141.24; 148.00; 149.04; 141.24;
Но я хочу выход Похожи
149.43; 143.62; 148.00; 148.23; 143.62;
147.45; 141.95; 148.00; 148.23; 143.62;
147.09; 141.46; 148.00; 148.23; 143.62;
147.59; 141.49; 148.00; 148.23; 143.62;
147.22; 141.41; 148.00; 148.23; 143.62;
147.34; 141.33; 148.00; 148.23; 143.62;
147.54; 141.32; 148.00; 148.23; 143.62;
148.23; 141.36; 148.00; 148.23; 143.62;
149.04; 141.24; 148.00; 148.23; 143.62;
Я должен сказать, что это не очень понятно, что вы хотите. Можете ли вы попытаться улучшить объяснение? – fedorqui
Предположим, что в $ 1 получить три значения, $ 3 (148.00) <$ 1 (149.43, 148.23, 149.09) Я хочу выбрать только макс $ 3 (148.00) <148.23 –