Bash скрипт для извлечения директории, которая содержит файл с определенным расширением - PullRequest
1 голос
/ 06 октября 2019

Итак, у меня следующая файловая структура

1. X
   |-a.txt
   |-E
     |- b.txt
   |-B
     |-C
     |-D
       |-c.txt

Итак, я хочу написать bash-скрипт, который рекурсивно перемещается во все подкаталоги и повторяет путь, содержащий как минимум 1 файл с расширением txt. Следовательно, выходные данные сценария для приведенного выше примера должны быть X (потому что он содержит a.txt), X/E (потому что он содержит b.txt) и X/B/D.

Еще один пример.

2.Y
  |-A
  |-B
    |-c.png
    |-C
      |-D
        |-a.txt
  |-E
    |-b.txt

Ожидаемый результат: - Y / E, Y / B / C / D

Буду очень признателен за любую помощь в этом.

1 Ответ

2 голосов
/ 06 октября 2019

С GNU находят:

find Y -type f -name "*.txt" -printf "%h\0" | sort -zu | tr '\0' '\n'

Выход:

Y/B/C/D
Y/E

См .: man find

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...