Если у вас Office 365 Excel, используйте следующую формулу массива:
=TEXTJOIN(",",TRUE,IF(LEN(TRIM(MID(SUBSTITUTE(A4,"|",REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A4)-LEN(SUBSTITUTE(A4,"|",""))+1))-1)*99+1,99)))>15,TRIM(MID(SUBSTITUTE(A4,"|",REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A4)-LEN(SUBSTITUTE(A4,"|",""))+1))-1)*99+1,99)) & " has " & LEN(TRIM(MID(SUBSTITUTE(A4,"|",REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A4)-LEN(SUBSTITUTE(A4,"|",""))+1))-1)*99+1,99))) & " Characters.",""))
Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
Без Office 365 мы можем вернуть стандартный возврат, но не фактическую длину
=IF(OR(LEN(TRIM(MID(SUBSTITUTE(A2,"|",REPT(" ",99)),(ROW($XFD$1:INDEX(XFD:XFD,LEN(A2)-LEN(SUBSTITUTE(A2,"|",""))+1))-1)*99+1,99)))>15),"This cell has an entry with too many Characters","")
Это все еще формула массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.
find . -mindepth 1 -maxdepth 1 -not -empty -type d
выдаст вам все непустые каталоги. Если вы хотите исключить каталоги, которые содержат только другие каталоги (но не файлы), один из других ответов может быть лучше ...
find . -type f -print0 | xargs -0 -n 1 dirname | sort -u
Как насчет:
find /nominated/directory -type f |
sed 's%/[^/]*$%% |
sort -u
Найти файлы - удалить часть имени файла - отсортировать однозначно.
В нем не будут перечислены подкаталоги, содержащие только другие подкаталоги.