Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: скрипт удалить все кроме 5 файлов  (Прочитано 2566 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Attid

  • Автор темы
  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
с помощью команды "ls -d1 *" я получаю список файлов, он может быть от 1 до много.

как мне можно из этого списка получить все файлы кроме первых 5.  (или кроме последних 5 если так будет проще, можно изменить порядок сортировки)

можно упростить условие, сказав что файлов меньше 6 быть не может (проверю с помощь wc)  ну а больше может.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: скрипт удалить все кроме 5 файлов
« Ответ #1 : 05 Марта 2011, 08:52:01 »
1. Пишете результат во временный файл.
2. Подсчитываете количество строк.
3. Если >5, то удаляете либо первые 5, либо последние 5 (в зависимости от того, что хотите).
и т.д.
Удаление можно проделать либо sedом, либо перезаписью циклом for c соответствующими параметрами.
« Последнее редактирование: 05 Марта 2011, 08:54:44 от alexander.pronin »

Оффлайн kom3s

  • Участник
  • *
  • Сообщений: 149
    • Просмотр профиля
Re: скрипт удалить все кроме 5 файлов
« Ответ #2 : 05 Марта 2011, 09:21:45 »
Например так:ls -d1 * > /tmp/file; for i in `sed '1,5d' /tmp/file`; do rm "$i"; done Вот неплохая подборка однострочников с sed.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: скрипт удалить все кроме 5 файлов
« Ответ #3 : 05 Марта 2011, 12:31:03 »
ls | tail -n +6

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: скрипт удалить все кроме 5 файлов
« Ответ #4 : 05 Марта 2011, 12:55:52 »
И за компанию
ls | head ...

Оффлайн Attid

  • Автор темы
  • Участник
  • *
  • Сообщений: 177
    • Просмотр профиля
Re: скрипт удалить все кроме 5 файлов
« Ответ #5 : 06 Марта 2011, 12:18:07 »
спасибо. просто вроде 2 раза просмотрел man по tail и  head  и не приметил что можно +/- использовать.

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.