Каков самый простой способ сортировки списка строк, сортировка по последнему полю каждой строки? Каждая строка может иметь переменное количество полей.
Что-то вроде
sort -k -1
- это то, что я хочу, но sort (1) не принимает отрицательные числа для выбора полей с конца, а не для начала.
Я также хотел бы иметь возможность выбирать разделитель полей.
Изменить: Чтобы добавить определенность к вопросу: Список, который я хочу сортировать, - это список путей. Пути могут иметь произвольную глубину, следовательно, переменное число полей. Я хочу сортировать по компоненту имени файла.
Эта дополнительная информация может изменить то, как можно манипулировать линией для извлечения последнего поля (может использоваться базовое имя (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
Я хочу, чтобы этот список сортировался по именам файлов, которые начинаются с цифр, указывающих порядок чтения файлов.
Я добавил свой ответ, ниже которого я сейчас это делаю. Я надеялся, что есть более простой способ - возможно, другая утилита сортировки - возможно, без необходимости манипулировать данными.