Автор Тема: bash / Пропустить\удалить каждый пятый файл в каталоге  (Прочитано 4569 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Всем привет!
find . -type f | while read line; do
   # здесь хочу пропускать каждый пятый файл
done

Либо другим способом удалить каждый пятый файл в каталоге.
У меня не получается считать итерации внутри цикла while.

Возможно такое ?
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
В https://bugzilla.altlinux.org/show_bug.cgi?id=36048#c36 и чуть далее этот момент обсуждается. В смысле глобальные переменные внутри "... | while ...". И можно документацию по bash на эту тему посмотреть.
« Последнее редактирование: 07.10.2019 18:44:59 от asy »

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
В таком случае лучше выгрузить список документов каталога в файл, а потом через что-то другое вычленить каждый пятый файл, считав этот файл.
Воспользуюсь я PHP.
Спасибо за ответ!
Сноси Винду, переходи на Линукс ! :)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
В таком случае лучше выгрузить список документов каталога в файл, а потом через что-то другое вычленить каждый пятый файл, считав этот файл.
Воспользуюсь я PHP.
Если с файлом годится, то там же и упоминался вариант:
TMPFILE=`mktemp`
find . -type f > $TMPFILE
while read line; do
   # здесь хочу пропускать каждый пятый файл
done < $TMPFILE
rm $TMPFILE
« Последнее редактирование: 07.10.2019 21:25:59 от asy »