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


Автор Тема: Помогите с написанием скрипта на Bash.  (Прочитано 5331 раз)

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

Оффлайн x230

  • Любитель
  • *
  • Сообщений: 64
  • Георгий Александрович
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #15 : 04 Февраля 2020, 12:37:20 »
find dir/with/structure -type f \! -exec bash -c "echo '{}' | grep -qFf exception.list " \; -print

Взял за основу эту команду.
Необходимо удалить логи в каталоге ~/.config/chrmoium/Default.
Файл exclusions.txt содержит исключения:
./"Local Extension Settings"/moihledlmchhofenpacbhphnbnpakgmo/000002.log
./"Local Storage"/leveldb/000003.log


Моя команда:
find . -name "*.log" -type f \! -exec bash -c "echo '{}' | grep -f ~/exclusions.txt" \; -printвыдает полный список файлов *.log - исключения не срабатывают.

Где копать?
i3-3210 / 4GB / VGA на борту / SSD 240ГБ / Artix (runit) / Kernel 5.10.*-lts / KDE 5.87.* / Plasma 5.23.* / Ungoogled-Chromium

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #16 : 04 Февраля 2020, 22:25:58 »
x230,
Убери кавычки или попробуй:
find dir/with/structure -type f -print0 | grep -aZzvFf  exception.list | xargs -0 echo rm

Оффлайн IKar4ik

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #17 : 03 Ноября 2021, 14:51:33 »
Код: (bash) [Выделить]
find dir/with/structure -type f -print0 | grep -aZzvFf  exception.list | xargs -0 echo rmНу или если есть возможность|желание потестить
Код: (bash) [Выделить]
find dir/with/structure -type f \! -exec bash -c "echo '{}' | grep -qFf exception.list " \; -printЕсли будет выводить правильно -print заменить на -delete

Подскажите а папки с пробелами в файл exception.list как заносить ?
Иванов/ обрабатывается нормально, а вот Иванов И.И. - пробовал "Иванов И.И./" "Иванов И.И."/ Иванов\ И.И./ - не обрабатываются такие .

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #18 : 03 Ноября 2021, 15:11:56 »
Подскажите а папки с пробелами в файл exception.list как заносить ?
Без кавычек и экранирования.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн IKar4ik

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #19 : 03 Ноября 2021, 17:59:52 »
Пробовал и так Иванов И.И/ все равно не отрабатывает . добавлял все папки с новой строки и через пробел . Проблема именно  с папками с пробелами в названиях.

Оффлайн IKar4ik

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #20 : 05 Ноября 2021, 22:23:53 »
Гуру так подскажите пожалуйста , как в  exception.list  прописывать имена с пробелами ?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #21 : 05 Ноября 2021, 23:45:54 »
find dir/with/structure -type f  | grep 'Иванов И\.И\.'Выводит?
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #22 : 06 Ноября 2021, 12:38:23 »
ALiEN175, я не следил за темой, но я предпочитаю так:
egrep "Иванов И\.И\."
Пётр.

Оффлайн IKar4ik

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #23 : 06 Ноября 2021, 22:16:53 »
ALiEN175,  Судя по всему проблема не в пробелах, а в названиях с кириллицей.
« Последнее редактирование: 06 Ноября 2021, 22:55:59 от IKar4ik »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #24 : 06 Ноября 2021, 22:46:27 »
IKar4ik, ну значит нет такой папки.
Предположительно - в названии не один пробел, либо что-то вместо него.
$: cat test.txt
Иванов И.И.
Петров П.П.

$: cat test.txt | grep 'ов '
Иванов И.И.


Пользователь добавил сообщение 06 Ноября 2021, 22:56:39:
IKar4ik, Файл паттернов должен быть в UTF-8 c переносом строк LF.

file test.txt
test.txt: Unicode text, UTF-8 text
« Последнее редактирование: 06 Ноября 2021, 22:56:39 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн IKar4ik

  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Помогите с написанием скрипта на Bash.
« Ответ #25 : 12 Ноября 2021, 21:59:07 »
ALiEN175, Спасибо за помощь . Связано было с "IKar4ik, Файл паттернов должен быть в UTF-8 c переносом строк LF."
Не подскажите ещё как сделать так, чтобы удалялись не только файлы в этих папках, но и подпапки ? В данный момент после отработки остается много пустых подпапок внутри .

 

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