Может быть более поиск
-центрический способ, но вы могли бы сделать это с помощью пары других инструментов:
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}}'