Flac
分析文件夾中的flac文件並刪除所有比特率低於950kbps的文件
我正在尋找一個簡單的 shell 命令來分析文件夾中的所有 flac 文件並刪除所有比特率低於 950kbps 的文件。現在我必須啟動 Clementine,瀏覽到文件夾,對文件進行排序並手動刪除。這就是我使用 Clementine 的全部目的,我認為這太過分了。非常感謝
據我所知,沒有簡單的命令可以執行這樣的操作。但是,瀏覽文件夾中文件的小腳本可以解決問題。
首先,我們需要一個命令行實用程序來獲取文件的比特率。我使用
mediainfo
( Debian 上的mediainfo包)。其他實用程序也可以很好地完成這項工作。安裝後,以下腳本會列出文件夾中比特率低於 950 kbps 的所有 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
;mediainfo
顯示有關 FLAC 文件的所有資訊並將其提供給第一個grep
命令;- 第一個
grep
選擇比特率線並將其提供給第二個grep
;- 第二個
grep
在這一行中只選擇數字。.
in[0-9].[0-9]*
處理空格千位分隔符(例如 in )1␣050
;sed
如果需要,刪除千位分隔符;- 最後
[ ... -lt 950 ]
檢查比特率是否小於 950 kbps,如果是,則rm
命令刪除文件。