Удалить текст между тегами "", где "" может находиться на разных строках

Использование zsh:

cd /root
for subdir in subdir*
do
  mv "$subdir"/**/*(.) "$subdir"
  rm -r "$subdir"/*(/)
done

Это:

  1. заменяется на каталог "/root" (из вашего примера)
  2. снова перебирает каждый подкаталог с именемsubdir*(из вашего примера :соответствие subdir1 и subdir1)
  3. перемещает ожидаемый (, но будет соответствовать всем )соответствующим файлам (s )в этом подкаталоге в этот подкаталог. Здесь используется функция рекурсивного подстановки zsh **, ограниченная квалификатором glob *(.), который говорит :о любой записи в этом каталоге, которая является простым файлом
  4. после перемещения файла рекурсивно удалить все подкаталоги внутри этого подкаталога; это снова использует квалификатор zsh glob *(/), который указывает на соответствие записям, которые являются каталогами.
0
10.08.2021, 13:36
0 ответов

Теги

Похожие вопросы