Какой самый простой способ сортировки списка строк, сортировка по последнему полю каждой строки?Каждая строка может иметь переменное количество полей.
Что-то вроде
sort -k -1
- это то, что я хочу, но sort (1) не принимает отрицательные числа для выбора полей с конца вместоначало.
Я также хотел бы иметь возможность выбрать разделитель полей.
Редактировать: Чтобы добавить некоторую специфичность к вопросу: список, который я хочу отсортировать, представляет собой списокмаршруты.Имена путей могут быть произвольной глубины, поэтому переменное количество полей.Я хочу отсортировать компонент имени файла.
Эта дополнительная информация может изменить способ манипулирования строкой для извлечения последнего поля (можно использовать basename (1)), но не меняет требований к сортировке.
например,
/a/b/c/10-foo
/a/b/c/20-bar
/a/b/c/50-baz
/a/d/30-bob
/a/e/f/g/h/01-do-this-first
/a/e/f/g/h/99-local
Я хочу, чтобы этот список был отсортирован по именам файлов, которые начинаются с цифр, указывающих порядок чтения файлов.
Я добавил свой ответ, ниже которогокак я сейчас это делаю.Я надеялся, что есть более простой способ - возможно, другая утилита сортировки - возможно, без необходимости манипулировать данными.