폴더에 있는 flac 파일을 분석하고 비트 전송률이 950kbps보다 낮은 모든 파일을 삭제합니다.

폴더에 있는 flac 파일을 분석하고 비트 전송률이 950kbps보다 낮은 모든 파일을 삭제합니다.

폴더의 모든 flac 파일을 분석하고 비트 전송률이 950kbps 미만인 모든 파일을 삭제하는 간단한 셸 명령을 찾고 있습니다. 이제 Clementine을 시작하고 폴더를 찾아 파일을 정렬하고 수동으로 삭제해야 합니다. 그게 제가 Clementine을 사용하는 전부인데, 좀 과한 것 같아요. 감사합니다

답변1

내가 아는 한 이와 같은 작업을 수행하는 간단한 명령은 없습니다. 그러나 폴더에서 파일을 검색하는 작은 스크립트가 이를 수행할 수 있습니다.

먼저 파일의 비트 전송률을 얻으려면 명령줄 유틸리티가 필요합니다. 나는 사용한다 mediainfo(미디어 정보Debian의 패키지). 다른 유틸리티는 이 작업을 잘 수행할 수 있습니다. 설치 후 다음 스크립트는 비트 전송률이 950kbps 미만인 폴더에 있는 모든 FLAC 파일을 나열합니다.

#!/usr/bin/env sh

for flacfile in *.flac; do
    [ $(mediainfo "$flacfile" | grep 'Bit rate' | grep -oi '[0-9].[0-9]*' | sed 's/\s//g') -lt 950 ] && echo "$flacfile"                                                                                            
done

이것이 효과가 있다면 명령을 파일 삭제를 계속하는 명령으로 바꾸십시오 echo.rm

#!/usr/bin/env sh

for flacfile in *.flac; do
    [ $(mediainfo "$flacfile" | grep 'Bit rate' | grep -oi '[0-9].[0-9]*' | sed 's/\s//g') -lt 950 ] && rm "$flacfile"                                                                                            
done

설명하다

  • 디렉토리의 for모든 파일을 반복합니다 ..flac
  • mediainfoFLAC 파일에 대한 모든 정보를 표시하고 첫 번째 grep명령에 제공합니다.
  • 첫 번째는 grep비트 전송률 행을 선택하고 이를 두 번째 행에 공급합니다 grep.
  • 두 번째는 grep해당 행의 숫자만 선택합니다. 핸들 공간에는 천 단위 구분 기호(예: in) .;[0-9].[0-9]*1␣050
  • sed필요한 경우 공백 천 단위 구분 기호를 제거하십시오.
  • 마지막으로 [ ... -lt 950 ]비트 전송률이 950kbps 미만인지 확인하고 그렇다면 rm파일을 삭제하라는 명령을 내립니다.

관련 정보