Я пишу сценарій ksh. Потрібно знайти всі назви каталогів безпосередньо в поточній каталозі, які містять лише файли, а не підкаталоги.
Я знаю, що я міг би використовувати ls -alR
і рекурсивно розбирати вихід для першої літери в першому полі ( d
для каталогу). Я думаю, що awk
це найкращий спосіб розібратися і знайти.
Наприклад, простий ls -al
вихід у поточному каталозі:
drwxr-xr-x 22 af staff 748 18 Mar 22:21 .
drwxr-xr-x 5 root admin 170 17 Mar 18:03 ..
-rw------- 1 af staff 3 17 Mar 16:37 .CFUserTextEncoding
drwxr-xr-x 5 af staff 170 17 Mar 17:12 Public
drwxr-xr-x 9 af staff 306 18 Mar 17:40 Sites
-rw------- 1 af staff 3 17 Mar 16:37 textd
…
У цьому виході є 2 каталоги: Public
і Sites
. Каталог Public
не містить підкаталогів, але є Sites
. В системі є 3 підкаталоги Sites
. Тому мені потрібно повторювати лише ті каталоги, які не містять у них каталогів. У моєму випадку це тільки Sites
.