Мне нужно вывести список всех путей к каталогам, содержащим файлы .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