0

私は実際にsox、オーディオ ファイルに関する情報を取得するために呼び出されたコマンド ライン ツールを使用しています。これにより、次の出力が返されます。

Samples read:            449718
Length (seconds):     28.107375
Scaled by:         2147483647.0
Maximum amplitude:     0.999969
Minimum amplitude:    -0.999969
Midline amplitude:     0.000000
Mean    norm:          0.145530
Mean    amplitude:     0.000291
RMS     amplitude:     0.249847
Maximum delta:         1.316925
Minimum delta:         0.000000
Mean    delta:         0.033336
RMS     delta:         0.064767
Rough   frequency:          660
Volume adjustment:        1.000

正規表現を使用して、これから値を抽出したいと思います。これまでのところ、/^Length \(seconds\):\s*[0-9.]*/mどの一致Length (seconds): 28.107375がありますが、値が必要です。

私は何をする必要がありますか?

4

3 に答える 3

1

2つのオプション(私はsoxに精通していないため、これがsoxでどの程度正確に機能するかわかりません):

  1. 後読みを使用して、最初の部分を一致させることができます。これは、正規表現エンジンで可変長のルックビハインドが許可されている場合に機能します。/(?<=^Length \(seconds\)\:\s*)[\d.]*/
  2. グループ内の値をキャプチャして、後で参照することができます/^Length \(seconds\):\s*([\d.]*)/。これは、soxにキャプチャグループ機能がある場合に機能します。この場合、値は最初のキャプチャグループに保持されます(ルビーで$ 1)
于 2012-08-02T11:43:43.877 に答える
1

「soxi-Dfilename」は、ファイル名の長さを秒単位で返します。数だけで、他には何もありません。SoXIに関する情報はここにあります

于 2012-08-24T10:57:06.260 に答える
0
awk '/^Length \(seconds\):/ { print $NF }'
于 2012-08-02T11:55:51.143 に答える