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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Автоматизированное удаление файлов bash  (Прочитано 501 раз)

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

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Пишу скрипт на bash. Задача - удалять файлы, название которых состоит из двух частей и числа между ними. Например "n0b" "n105b". Если написать так rm n[0-9]b то будут удалятся те только файлы, где в названии между частями стоит только одна цифра. Что изменить?
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #1 : 02 Апрель 2015, 16:45:48 »
ls n{0..105}b
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6016
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #2 : 02 Апрель 2015, 17:38:04 »
От 1 до 3 цифр включительно
Код: Bash
  1. rm n[0-9]{,[0-9]{,[0-9]}}b.txt
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #3 : 02 Апрель 2015, 19:16:35 »
Спасибо.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6016
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #4 : 02 Апрель 2015, 19:55:54 »
Но самое правильное
Код: Bash
  1. find -type f -regex "./n[0-9]*b" -delete
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #5 : 06 Апрель 2015, 17:22:56 »
Но самое правильное
Код: Bash
  1. find -type f -regex "./n[0-9]*b" -delete
Такое удаляет файл типаnbНо этот файл трогать нельзя.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6016
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #6 : 06 Апрель 2015, 18:32:23 »
"Муся, я Вами удивляюсь!"
find -type f -regex "./n[0-9]+b" -deletefind -type f -regex "./n[0-9][0-9]*b" -delete
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alsoijw

  • Автор темы
  • Старожил
  • *
  • Сообщений: 4073
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #7 : 06 Апрель 2015, 18:44:01 »
Цитировать
find -type f -regex "./n[0-9]+b" -delete
Как называется выделенное красным? Что означает этот плюс? Что ещё там может стоять?

Пользователь решил продолжить мысль 06 Апрель 2015, 18:47:29:
Нашёл
« Последнее редактирование: 06 Апрель 2015, 18:47:29 от alsoijw »
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6016
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Автоматизированное удаление файлов bash
« Ответ #8 : 06 Апрель 2015, 19:07:21 »
Тогда уже сразу Квантификация ;)
Хотя в данном случае стоит почитать man find в частности параметр -regextype и найти Emacs Regular Expressions
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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