Вот есть такой код:
awk '
{
c=0
$0=$0","
namep=0
minc=0
while ($0)
{
match($0,/ *"[^"]*"*,|[^,]*,/)
f=substr($0,RSTART,RLENGTH)
gsub(/^"?|"?,$/,"",f)
++c
if (c==1)
namep=f
else if (c==2)
minc=f
else if (c>2)
{
if (minc>f)
{
minc=f
}
}
$0=substr($0,RLENGTH+1)
}
print namep ": " minc
}' Srednije_tseny_za_ijul_2018.txt
Отрабатывает хорошо. Парсит строку вида:
БРИТВА ЭЛЕКТРИЧЕСКАЯ,«89,42»,«92,74»,«84,38»,«104,98»,«65,63»,«79,97»,99
На выводе должны получить название и минимальную цену, но в итоге оказывается что 104,98 это минимум. При сравнении допустим 84,38 и 92,74 выбирает правильно 84,38. Но если уже сравнивается 104,98 и 84,38 меньшим оказывается 104,98.
Почему так? И как правильно это делать?