Я пытался сделать числовую сортировку по списку имен файлов.

Они все названы как

something.txt ~ NUM ~

Я пытался сортировать их по

sort -t "~" -k1 -k2n

Но это не так. Если я сделаю

сортировать -n

Затем они численно сортируются по желанию, но дескрипторы файлов не сортируются.

Вот тестовый файл

explanation.txt.~1~
explanation.txt.~2~
explanation.txt.~3~
explanation.txt.~4~
explanation.txt.~5~
explanation.txt.~6~
explanation.txt.~7~
explanation.txt.~8~
explanation.txt.~9~
explanation.txt.~11~
explanation.txt.~12~
explanation.txt.~13~
explanation.txt.~14~
explanation.txt.~15~
explanation.txt.~16~
explanation.txt.~17~
explanation.txt.~18~
explanation.txt.~19~
explanation.txt.~20~
presentation.txt.~10~
presentation.txt.~11~
presentation.txt.~12~
presentation.txt.~13~
presentation.txt.~14~
presentation.txt.~15~
presentation.txt.~16~
presentation.txt.~17~
presentation.txt.~18~
presentation.txt.~19~
presentation.txt.~1~
presentation.txt.~20~
presentation.txt.~21~
presentation.txt.~22~
presentation.txt.~2~
presentation.txt.~3~
presentation.txt.~4~
presentation.txt.~5~
presentation.txt.~6~
presentation.txt.~7~
presentation.txt.~8~
presentation.txt.~9~

который сортируется как

explanation.txt.~11~
explanation.txt.~12~
explanation.txt.~13~
explanation.txt.~14~
explanation.txt.~15~
explanation.txt.~16~
explanation.txt.~17~
explanation.txt.~18~
explanation.txt.~19~
explanation.txt.~1~
explanation.txt.~20~
explanation.txt.~2~
explanation.txt.~3~
explanation.txt.~4~
explanation.txt.~5~
explanation.txt.~6~
explanation.txt.~7~
explanation.txt.~8~
explanation.txt.~9~
presentation.txt.~10~
presentation.txt.~11~
presentation.txt.~12~
presentation.txt.~13~
presentation.txt.~14~
presentation.txt.~15~
presentation.txt.~16~
presentation.txt.~17~
presentation.txt.~18~
presentation.txt.~19~
presentation.txt.~1~
presentation.txt.~20~
presentation.txt.~21~
presentation.txt.~22~
presentation.txt.~2~
presentation.txt.~3~
presentation.txt.~4~
presentation.txt.~5~
presentation.txt.~6~
presentation.txt.~7~
presentation.txt.~8~
presentation.txt.~9~

Я использую Sierra OSX. Так что, в частности, sort -V мне недоступен. Я также знаю, как получить желаемый результат, используя Perl-скрипт. Таким образом, дело не в том, как получить желаемый результат, а в том, как это сделать с помощью «сортировки».

1 ответ1

2

Сначала вы хотите отсортировать только по полю 1, а затем в случае связей посмотрите на поле 2:

sort -t'~' -k1,1 -k2,2n

Когда вы используете -k1 , вы сортируете по полю 1 до конца строки. Когда вы делаете это, связи отсутствуют, поэтому сортировка по полю 2 никогда не срабатывает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .