5

soxとを組み合わせlameて新しい音楽ファイルを生成するのですが、パイプを使ってすべてを 1 行で行うには、出力と入力の境界を-文字で「マーク」する必要があるようです。このコードを継承しましたので、お見せしましょう。

sox $DIRNAME/$BASENAME -e signed-integer -r 8000 -c 2 -t wav - trim $POSITIONS | lame -v -V4 --resample 8 - $DIRNAME/${NOEXT}.mp3

との-間が出力ファイルで、 と の間が入力ファイルです。wavtrim---resample 8$DIRNAME/${NOEXT}.mp3

これについて、どんな文字でも使えるのか-、このように特別なのかなど、さらに詳しい情報を見つけようとしています。これは何と呼ばれ、何が機能するのでしょうか?

4

4 に答える 4

6

多くの Unix コマンドライン ユーティリティでは、「ここでは実際のファイルを使用せず、代わりに stdin (または stdout) を使用する」という意味で、省略形として「-」を使用しています。Sox は次のプログラムの 1 つです。

これはsox マンページからのものです

SoX は、特別なファイル名 '-' を使用して単純なパイプライン操作で使用できます。これを入力ファイル名の代わりに使用すると、SoX は '標準入力' (stdin) からオーディオ データを読み取ります。出力ファイル名の変更により、SoX は音声データを「標準出力」(stdout) に送信します。このオプションを使用する場合、ファイルタイプ (下記の -t を参照) も指定する必要があることに注意してください。

于 2012-10-01T01:16:47.520 に答える
2

あなたの例では、それは

/dev/stdin

-あなたをそれに置き換えてみてください。

于 2012-10-01T01:23:08.980 に答える
2

「-」は、ファイル名の代わりに「標準入力 (ファイルの代わりに、またはファイルの読み取り) または標準出力 (ファイルへの書き込みの代わりに) を使用する」という規則としてよく使用されます。これはコマンド シェル (つまり bash) の機能ではないため、その意味では特殊文字ではありません。これはいくつかのコマンドの機能であり(あなたの場合は「sox」や「lame」など)、パイプを介してこれらのコマンドをチェーンするのに非常に役立ちます。

于 2012-10-01T01:23:37.433 に答える
2

慣例により、UNIX とその仲間-は stdin と stdout を表すために使用します。

100% 万能ではありませんが、かなり広く使用されています。

于 2012-10-01T01:17:09.163 に答える