
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.11.2005, 13:43:31
|
|||
|---|---|---|---|
|
|||
спортивный вопрос по bash |
|||
|
#18+
Доброго дня. Вопрос чисто спортивный. Задачу можно решить с помощью перла, но хочется обойтись башем и, если необходимо, минимумом системного ПО. В Slackware можно использовать систему обновления swaret. Особенность реализации заключается в том, что пакеты кэшируются в определенном каталоге. Раздражают две вещи. Первая - иногда догруженные пакеты бывают поломаны, а вторая - накопление пакетов со старыми версиями. Первая проблема решается методом: Код: plaintext 1. 2. 3. А автоматизация удаления устаревших пакетов мне не приходит в голову. Фрагмент листинга каталога привожу ниже: aaa_base-10.1.0-noarch-2.tgz aaa_base-10.2.0-noarch-1.tgz aaa_base-10.2.0-noarch-2.tgz aaa_elflibs-10.1.0-i486-1.tgz aaa_elflibs-10.2.0-i486-1.tgz aaa_elflibs-10.2.0-i486-2.tgz aaa_elflibs-10.2.0-i486-3.tgz acpid-1.0.4-i486-2.tgz arts-1.4.0-i486-1.tgz arts-1.4.2-i486-1.tgz aspell-0.60.2-i486-1.tgz aspell-0.60-i486-2.tgz aspell-en-6.0_0-noarch-3.tgz atk-1.9.1-i486-1.tgz automake-1.9.5-noarch-1.tgz bash-3.0-i486-2.tgz bash-3.0-i486-3.tgz bin-10.2-i486-1.tgz bind-9.3.1-i486-1.tgz binutils-2.15.92.0.2-i486-2.tgz binutils-2.15.92.0.2-i486-3.tgz bison-1.875d-i486-1.tgz bzip2-1.0.3-i486-1.tgz ccache-2.4-i486-1.tgz clisp-2.34-i486-1.tgz cvs-1.11.18-i486-1.tgz cvs-1.11.20-i486-1.tgz cvs-1.11.21-i486-1.tgz cxxlibs-5.0.7-i486-1.tgz cyrus-sasl-2.1.21-i486-1.tgz dcron-2.3.3-i486-5.tgz devs-2.3.1-noarch-22.tgz distcc-2.18.3-i486-1.tgz distcc-2.18.3-i486-2.tgz dnsmasq-2.20-i486-1.tgz dnsmasq-2.22-i486-1.tgz doxygen-1.4.0-i486-1.tgz doxygen-1.4.3-i486-1.tgz doxygen-1.4.4-i486-1.tgz e2fsprogs-1.38-i486-2.tgz esound-0.2.35-i486-1.tgz espgs-8.15rc2-i486-1.tgz espgs-8.15rc3-i486-1.tgz espgs-8.15rc3-i486-2.tgz Как бы такое сообразить, что б оставить только последние версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2005, 14:12:11
|
|||
|---|---|---|---|
спортивный вопрос по bash |
|||
|
#18+
так пойдет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2005, 14:22:26
|
|||
|---|---|---|---|
|
|||
спортивный вопрос по bash |
|||
|
#18+
В общем идея понятна. Правда приведенный пример кода удалит пакет aspell и оставит только словарь. но это уже с полями пободаться надо. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2005, 14:25:40
|
|||
|---|---|---|---|
спортивный вопрос по bash |
|||
|
#18+
тогда начни так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2005, 10:46:35
|
|||
|---|---|---|---|
|
|||
спортивный вопрос по bash |
|||
|
#18+
Спасибо за проявленный интерес. К сожалению Ваш вариант выдает список файлов, которые надо оставить. По смыслу надо вывести список файлов, подлежащих удаелнию. Вот мой вариант: Код: plaintext 1. 2. 3. 4. Оба решения страдают одной ошибкой. В выше приведенном списке выражению ls -1 aspell-* удовлетворяют 3 записи, а aspell-en-* - одна. При последовательном проходе будут удалены оба пакета aspell. Попробую еще дома поиграть на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2005, 13:06:30
|
|||
|---|---|---|---|
спортивный вопрос по bash |
|||
|
#18+
попробуй еще такое произведение Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2005, 13:22:05
|
|||
|---|---|---|---|
спортивный вопрос по bash |
|||
|
#18+
небольшое уточнение вот например в запрос-е Код: plaintext 1. 2. 3. 4. 5. видно что последняя запись явл. самым новым пакетом а вот здесь Код: plaintext 1. 2. 3. что то я нессображу, что новее? если aspell-0.60-i486-2.tgz, то приведенный выше скрипт должен работать правильно, впротивном случае со всей это катавальсией получается какой то непонятный замут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2005, 13:53:24
|
|||
|---|---|---|---|
|
|||
спортивный вопрос по bash |
|||
|
#18+
sanek842 а вот здесь Код: plaintext 1. 2. 3. что то я нессображу, что новее? если aspell-0.60-i486-2.tgz, то приведенный выше скрипт должен работать правильно, впротивном случае со всей это катавальсией получается какой то непонятный замут aspell-0.60-i486-2.tgz - более новый вариант по дате и по ls -1v asp* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.11.2005, 19:45:50
|
|||
|---|---|---|---|
спортивный вопрос по bash |
|||
|
#18+
чтобы правильно отработать имена типа aspell-0.60-i486-2.tgz aspell-0.60.2-i486-1.tgz aspell-en-6.0_0-noarch-3.tgz надо сначала пропарсить и выделить имя каждого пакета те для третьего оно будет "aspell-en" а для первых двух "aspell" это значит что нельзя идти awk-ом по разделителю тупо а надо например принять условие что строка-разделитель-строка и тд составляют имя при устови что строка не содержит только буквы и точки (признак версии). И имя считать от начала - как только встретится версия - перкращаем. Потом собрать имена и по каждому уже собрать поля версий и сравнивать. В общем хотя бы скрипт на awk надо делать... (imho) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.11.2005, 16:31:56
|
|||
|---|---|---|---|
|
|||
спортивный вопрос по bash |
|||
|
#18+
--null--чтобы правильно отработать имена типа aspell-0.60-i486-2.tgz aspell-0.60.2-i486-1.tgz aspell-en-6.0_0-noarch-3.tgz надо сначала пропарсить и выделить имя каждого пакета те для третьего оно будет "aspell-en" а для первых двух "aspell" это значит что нельзя идти awk-ом по разделителю тупо а надо например принять условие что строка-разделитель-строка и тд составляют имя при устови что строка не содержит только буквы и точки (признак версии). И имя считать от начала - как только встретится версия - перкращаем. Потом собрать имена и по каждому уже собрать поля версий и сравнивать. В общем хотя бы скрипт на awk надо делать... (imho) Мда. Я уже сам убедился, что задача в общем случае гораздо более сложная чем кажется. Спасибо за проявленный интерес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=25&mobile=1&tid=1489999]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
17ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 262ms |

| 0 / 0 |
