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

%q형식은 줄 바꿈이있는 앨범 이름이 두 번 이상 계산되지 않도록하기 위해 사용됩니다.

아티스트를 보려면

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

아티스트 수를 세려면

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

위의 명령 music은 현재 디렉토리에 있다고 가정합니다 . 는 IF music디렉토리 실제로 /music, 다음을 넣어 /앞에 music위의 모든 명령한다. 그렇지 않으면 도달 할 경로를 앞에 놓으십시오 music.


0

find모든 하위 디렉토리를 나열 하는 데 사용할 수 있습니다 . 그런 다음 줄당 슬래시 수를 세고 그 중 3 개가 얼마나 자주 있었는지보고하십시오.

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

아티스트 수를 반환해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.