2017-04-20 3 views
0

안녕에 특정 파일의 수를 계산하는 방법은 디렉토리에 test_1.jpg, train_1.jpg, test_2.jpg, train_1.jpg .....이 경우 리눅스우분투 리눅스 : 디렉토리

command:ls -l . | egrep -c '^-'. 

있는 디렉토리에있는 모든 파일의 수를 계산하는 방법을 알고있다. 난 단지 test_*jpg의 수를 계산하고이 디렉토리에 train_*.jpg의 수를 세지 않으려합니다. 어떻게 리눅스 명령을 사용하여 그것을 할 수 있습니다. 감사!

+0

https://unix.stackexchange.com/questions/146760/count-files-in-a-directory-by-extension – 4EACH

답변

1

나는 ls -1 |> wc -l가 잘 작동하는 것을 발견했다. 그것은 음수가 아닌 마이너스 1입니다.

편집 :

따라서, 귀하의 경우 ls -1 test*.jpg | wc -l 작동합니다. 와일드 카드를 조정할 수 있습니다. 이 경우 test으로 끝나고 .jpg으로 끝나는 것은 모두 일치합니다.

+0

의견을 보내 주셔서 감사합니다. 테스트 수를 계산하고 싶습니다. train _ *. jpg – tktktk0711

+0

답변을 업데이트했습니다. 실제로, 나는 밑줄을 포함시키지 않았다, 그래서 아마도 당신은 그 glob이'test _ *. jpg' –

+0

당신의 대답에 감사하고 싶을 것이다. – tktktk0711

1

당신을 위해 다음과 같은 작업을 수행합니다 모든 파일이 같은 디렉토리 dir에 있다면

다음 명령은 당신을 도울 것입니다
ls -l *train_*.jpg | egrep -c '^-'. 
+0

이것은 내 자신의 테스트에서 당신과 비슷한 데이터로 확실하게 작동했습니다. – David

1

.

ll dir/test_*.jpg | wc -l 
ls -al dir/test_*.jpg | wc -l 

Explaination :

만큼 당신의 파일 이름이 포함로
ls -al dir/test_*.jpg | wc -l 

# ll is short for ls -al 
# -l use a long listing format 
# -a, --all 
#  do not hide entries starting with . 

# wc -l print the newline counts. 
1

공백

a=(test*.jpg); echo ${#a[@]} 

또한 빈 목록을 감지하는 shopt nullglob를 확인합니다.

+0

또는 배열을 채우기 전에'IFS = $ '\ n "을 (를) 설정하고 공백에 대해 걱정하지 마십시오. 나는 아마 그것을 할 것이고'echo '를'find'로 바꿀 것이다. -type f -printf "% f \ n"' –

관련 문제