Вывод списка путей к каталогам с помощью команды Unix

Вывод списка путей к каталогам с помощью команды Unix

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

Например: есть путь /geek/user/temp.txt. Мне нужно получить путь /geek/user в качестве вывода. Кто-нибудь, пожалуйста, посоветуйте

решение1

Для Windows выполните это в командной строке (cmd) после размещения (CD) в корневую папку:

for /r %a in (.) do @if exist "%~fa\*.txt" echo %~fa

Или замените .указанный выше путь к корневой папке.

Для Linux возможны две команды:

find . -type f -name '*.txt' | sed -r 's|/[^/]+$||' | sort -u
find . -type f -name '*.txt' -printf '%h\n' | sort -u

Для MacOS:

find . -type f -name '*.txt' | sed -E 's|/[^/]+$||' | sort -u

Связанный контент