特定の用途に合わせてプログラムをカスタマイズするために、Lame に関する簡単なスクリプトを作成しようとしています。私がやりたいのは、Lame の出力からパーセンテージの完全性だけを解析することです。
ラインは次のようになります。
./lame --nohist ~/Desktop/Driver.wav ~/Desktop/Driver.mp3 2>&1| egrep -o "\([0-9\%]+\)"
しかし、それは何も返しません。Lame からの出力は次のようになります。
LAME 3.99 (アルファ 1、2009 年 6 月 4 日 19:42:31) 32 ビット (http://www.mp3dev.org/) 警告: アルファ版はテスト目的でのみ使用してください 多相ローパスフィルター使用、遷移帯域:16538Hz~17071Hz エンコーディング /Users/jkubicek/Desktop/Driver.wav /Users/jkubicek/Desktop/Driver.mp3 へ 44.1 kHz j-stereo MPEG-1 Layer III (11x) 128 kbps qval=3 としてエンコード フレーム | フレーム CPU 時間/見積もり | リアルタイム/見積もり | 再生/CPU | ETA 1500/8765 (17%)| 0:02/ 0:15| 0:03/ 0:17| 14.654x| 0:14
ファイルが変換されると、コードの最後の行が動的に更新されます。この正確なテキストを grep にコピー/貼り付け/エコー/パイプすると、17% は問題なく検出されますが、実際に実行すると zilch が検出されます。
編集: lame からの出力をテキスト ファイルにスローすると、結果は次のようになります。
出力を一時ファイルにプッシュして、そこから完了したパーセンテージを読み取ることができるように見えますが、これを行うためのよりエレガントな方法があるはずのように、それは厄介です。