Як я можу підрахувати кількість папок на певному рівні папки за допомогою терміналу Linux?


1

У моїй музичній бібліотеці є дуже особливе дерево каталогів. Я хотів би підрахувати всі альбоми, виключаючи всі підкаталоги.

Наприклад, з урахуванням цього дерева каталогів:

/music/
/music/Davis, Miles/                           
/music/Davis, Miles/Kind of Blue/                
/music/Davis, Miles/Tutu/                    
/music/Hendrix, Jimi/                              
/music/Hendrix, Jimi/Axis Bold As Love/               
/music/Hendrix, Jimi/Electric Ladyland/              
/music/Hendrix, Jimi/Electric Ladyland/Disk 1   
/music/Hendrix, Jimi/Electric Ladyland/Disk 2

Я хотів би, щоб команда повернула "4".

Тому в основному я хочу, щоб команда повернула кількість альбомів, або, бонусні бали, якщо воно повертає "2" інтерпретації і "4" альбоми.

(І подвійні бонусні бали, якщо він додатково перераховує інтерпретації та альбоми.)

Як найлегше це зробити?


Що таке "інтерпретація"?
John1024

Відповіді:


0

Щоб переглянути чотири альбоми:

$ ls -d1 music/*/*/
music/Davis, Miles/Kind of Blue/
music/Davis, Miles/Tutu/
music/Hendrix, Jimi/Axis Bold As Love/
music/Hendrix, Jimi/Electric Ladyland/

Щоб підрахувати їх:

$ printf "%q\n" music/*/*/ | wc -l
4

The %q Тут використовується формат для запобігання перевиненню імен альбомів з новими рядками.

Щоб побачити виконавців:

$ ls -d1 music/*/
music/Davis, Miles/
music/Hendrix, Jimi/

Щоб підрахувати кількість виконавців:

$ printf "%q\n" music/*/ | wc -l
2

Наведені вище команди припускають, що music знаходиться в поточному каталозі. Якщо music фактично /music, потім покласти a / перед music у всіх вищезазначених командах. В іншому випадку покладіть спереду який би шлях не досяг music.


0

Можна використовувати find щоб перелічити всі підкаталоги. Потім просто підрахуйте кількість скосів на рядок і повідомте про те, як часто їх було три:

find -type d | sed s%[^/]%%g | grep -c ^///$

Використовуйте ^//$ отримати кількість інтерпретацій.


0

Я думаю, що ви шукаєте трохи "магічної знахідки". Біг

find /music -mindepth 2 -maxdepth 2 -type d | wc -l

надасть вам кількість альбомів у вашій колекції. Біг

find /music -mindepth 1 -maxdepth 1 -type d | wc -l

слід повернути кількість виконавців.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.