私はフォルダ内のすべての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
mediainfo
FLACファイルに関するすべての情報を表示し、最初のgrep
コマンドに提供します。- 最初は
grep
ビットレートの行を選択し、それを2番目の行に供給しますgrep
。 - 2番目は
grep
その行の数だけを選択します。ハンドルスペースには、千単位の区切り記号(例:in).
。[0-9].[0-9]*
1␣050
sed
必要に応じて、空白千単位の区切り文字を削除します。- 最後に、
[ ... -lt 950 ]
ビットレートが950kbps未満であることを確認し、その場合はrm
ファイルを削除するように指示します。