LINUX.ORG.RU

Сортировка результатов find

 ,


0

1

Подскажите как пользоваться find, нужно найти файлы по маске, но чтоб выводил их в определенном порядке, при
find -name '*.txt'
он их выводит в каком-то рандомном порядке, а мне надо чтоб выводил в правильном (page1.txt, page2.txt, page3.txt), и чтоб после page1.txt не было page10.txt, это всё работает в одном sh скрипте,
find -name '*.txt' | sort тоже работает не так, как мне надо

Ответ на: комментарий от Deleted

Я с линуксом работаю не часто, потому у меня определенные проблемы с восприятием. Если вы имели ввиду ключ -g, то он тоже не дает результатов.

east@east-VirtualBox:~/test/temp$ find -name '*.txt' | sort -g
./page10.txt
./page11.txt
./page12.txt
./page13.txt
./page14.txt
./page15.txt
./page16.txt
./page17.txt
./page18.txt
./page19.txt
./page1.txt
./page20.txt
./page21.txt
./page22.txt
./page23.txt
./page24.txt
./page25.txt
./page26.txt
./page27.txt
./page28.txt
./page29.txt
./page2.txt
./page30.txt
./page31.txt
./page32.txt
./page33.txt
./page34.txt
./page35.txt
./page36.txt
./page37.txt
./page38.txt

episodka
() автор топика
Ответ на: комментарий от episodka

попробуйте другой флаг цифровой сортировки (там их несколько)

возможно проблема в том что цифра в ./page38.txt идёт в середине, тогда надо смотреть на секцию KEYDEF (в man sort) и указывать с какого символа искать цифры

Deleted
()

Тебе нужен powershell.

anonymous
()
Ответ на: комментарий от Deleted

Пробовал и

find -name '*.txt' | sort -t 'e' -g
только вот всё равно не выходит, а -k, как я понял, указывает столбец/колонку

episodka
() автор топика
Ответ на: комментарий от episodka

ну если ты все понял, то я ничем не помогу 8)

Deleted
()
Ответ на: комментарий от whatevar

Не, ну а чё. Мы же изобретаем решение для проблем, которые сами себе накостыляли.

$ find -name '*test*' | sort -t 't' -g -k 3
./test1
./test2
./test3
./test10
./test20
./test30

justAmoment ★★★★★
()
Ответ на: комментарий от Deleted

неправильно ты маны читаешь 8)

не читал, просто х**к х**к и в продакшн.

Твой вариант кстати подходит и под предыдущий вопрос с «*test*». Правда, если вдруг каким-то непостижимым образом окажется, что надо было искать «*qtest*», то и он сломается.

justAmoment ★★★★★
()
Последнее исправление: justAmoment (всего исправлений: 1)
Ответ на: комментарий от justAmoment

Правда, если вдруг каким то непостижимым образом окажется, что надо было искать «*qtest*», то и он сломается.

есесно, для этого человеку дадена документация и кое что ещё, чтобы починить.

А ежели тебе хочется изощриться под кастомный разделитель полей (что по мне костыль) то никто не мешает дочитать маны и сделать чтоб работало

Deleted
()
Ответ на: комментарий от episodka

это то, что мне было надо

На самом деле тебе нужен sort -V

DonkeyHot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.