Поиск вывода команды с наибольшим номером в подстроке - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно проанализировать выходные данные команды и найти подстроку после обратной косой черты (т. Е. app-v2.zip) для файла с самой высокой версией. В приведенном ниже выводе команды я хочу найти app-v2.zip, поскольку v2самый высокий.Я знаю, что для этого нужна комбинация команд bash, но я этого не понял.

Вывод команды:

gs://artifacts/app-v1.zip
gs://artifacts/app-v2.zip

Требуемое значение переменной:

app-v2.zip

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Вы можете использовать, например, basename для получения имени файла, sort -V для сортировки номеров версий и tail для получения самой новой версии.

your-command \
    | sort -V \
    | tail -n1 \
    | xargs basename
0 голосов
/ 27 мая 2019

Если ваш вывод уже отсортирован, как в вашем примере, это тривиально:

variable=$(yourCommand |awk -F/ 'END{print $NF}')
  • awk -F/: используйте / в качестве разделителя полей
  • END{print $NF}: распечатать последнее поле последней записи (строки)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...