Изменение глубины поиска при поиске каталогов

Я бы хотел найти все каталоги, содержащие файлы .txt . Но мне нужно напечатать один уровень вверх.

Например, я использую find для поиска рекурсивно для файлов .txt в текущем каталоге. Затем показываются только каталоги, содержащие такие файлы.

 find . -name "*.txt" -printf '%h\n' 

выходы на (например)

 ./out/data ./out/data ./output/data 

Итак, я хотел бы улучшить использование find для:

  1. не показывает повторяющиеся dirs (я думаю, это происходит потому, что в нем есть 2. .txt файл)

  2. Я бы хотел напечатать только первый уровень, то есть только ./out/ и ./output/

3 Solutions collect form web for “Изменение глубины поиска при поиске каталогов”

Там может быть более ориентированный подход, но вы можете сделать это с помощью нескольких других инструментов, помогающих:

 find . -name '*.txt' -printf '%h\n' | cut -f1,2 -d/ | sort -u 

Или я думаю, мы могли бы сохранить процесс и использовать awk как

 find . -name '*.txt' -printf '%h\n' | awk -F/ '{matched[$1"/"$2]=1} END {for(dir in matched) {print dir}}' 

почему бы не передать результат другим инструментам для дальнейшей обработки, например:

 find . -name "*.txt" -printf '%h\n'| sort | uniq | cut -d'/' -f1,2 

Используйте sed чтобы сохранить только первое имя каталога в пути, а затем sort и сохранять только первую строку с равным пробегом:

 find . -name "*.txt" -printf '%h\n' | sed -e 's#^\(\./[^/]*\).*#\1#' | sort -u 
  • bash - выделение прописных слов
  • Исключая папку для удаления пустых файлов с помощью find
  • Использование команды find для переименования файлов
  • Поиск файлов, имеющих подтвержденный дубликат в том же каталоге, рекурсивно
  • находить файлы без расширения
  • Обрезка не работает
  • Как выполнить поиск с помощью GNU для нескольких типов файлов за раз?
  • Как найти все файлы, которые НЕ содержат текстовую строку?
  • Объяснение% директив в find -printf
  • Исключить символические ссылки на другие файловые системы с помощью find -mount
  • zsh "echo SomeText >> ** / filename" в других оболочках
  • Interesting Posts

    Использование Perl для изменения указанных строк файла ASCII

    Какое устройство использует этот логический том?

    iptables ограничивает количество подключений в системе для ipv4 ipv6

    Синтаксическая ошибка Grep с правильным регулярным выражением

    Kernel Panic – не синхронизация: VFS: невозможно установить root fs на неизвестный блок (0,0)

    Я пытаюсь разобрать данные по двум разделителям

    Как определить ключ Compose в терминале (нет среды рабочего стола)?

    Возможно ли получить доступ к qemu-монитору, когда VM уже запущена?

    Отключите некоторые нажатия клавиш операционной системы и действия мыши на Cinnamon

    почему цикл while работает с терминала, если у ld-2.17.so нет исполняемого разрешения?

    Скопируйте файлы, созданные сегодня, без команды FIND и SFTP на другой сервер

    Как объединить эти wgets?

    Как я могу определить, является ли «сторожевой таймер NMI: BUG: soft lockup» аппаратным или программным обеспечением?

    Как гарантировать, что записи являются физически совершенными до того, как они были заполнены?

    Почему, если я не отключу nm-апплет и xfce4-volumed, мой запуск замедляется?

    Linux и Unix - лучшая ОС в мире.