Вы можете сохранить вывод вашей команды в файл (например, inputfile.txt
).Например:
1.10.1
1.11.1
1.11.2
1.10.3
1.13.2
1.12.3
1.11.4
1.12.3
1.12.1
1.12.13
1.10.2
1.13.1
1.13.4
Затем используйте следующий скрипт:
#!/usr/bin/env bash
max=0
i=0
lines=($(sort -t. -n -k1,1 -k2,2 -k3,3 inputfile.txt))
version=${lines[0]/??/}
version=${version/.*/}
for line in ${lines[@]}; do
tmp=${line/??/}
tmp=${tmp/.*/}
if [ $tmp -eq $version ]; then
if (( ${line//./} > $max )); then
max=${line//./}
fi
else
echo ${lines[i-1]}
fi
version=$tmp
((i++))
done
echo $line
Это выведет самую высокую подверсию для каждой подверсии:
1.10.3
1.11.4
1.12.13
1.13.4
IПредполагается, что каждая строка начинается с одной цифры, за которой следует точка.Если это не так (например, 11.10.1
), то строку tmp=${line/??/}
необходимо изменить.