특정 디렉터리의 전체 오디오 재생 시간을 가져오는 Linux 명령줄(bash)에 방법/도구가 있나요?
그것은 다음과 같습니다:
playtime --all --recursive /Music/DrumAndBass/
output: 1:35:06
답변1
이 도구를 사용하여 쉬운 mp3info
방법을 찾았습니다 awk
.
불행히도 이것은 mp3 파일에서만 작동합니다.
mp3info -p "%m:%s\n" directory/*.mp3 |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'
또는 작은 bash 스크립트로
#!/bin/bash
dir="$1"
mp3info -p "%m:%s\n" "$dir/*.mp3" |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'
awk
-line 에 대해 @steve에게 감사드립니다.
고쳐 쓰다:
sndfile-info
또는 다음 과 sox
같은 다양한 파일 형식의 재생 시간을 얻을 수 있습니다 .flac
wav
sndfile-info audio.flac | awk '/^Duration/ { print $3 }'
또는 sox
해결책:
sox -V3 audio.flac -n |& awk '/^Duration/ { print $3;exit }'
( 첫 번째 항목만 인쇄하도록 명령 exit
의 출력을 제한합니다.)awk