1

ブロックサイズ n と別のサイズ k が与えられた場合、k の倍数の入力の開始点からのオフセットを持つブロックのみを出力する方法を探します。

2 バイト データの 4 タプルの数で構成されるファイルを想像してください。この入力が与えられたので、各タプルの最初のエントリのみが必要です。

入力例:

00 00 11 11 22 22 33 33
44 44 55 55 66 66 77 77
88 88 99 99 aa aa bb bb
cc cc dd dd ee ee ff ff

n=2 および k=8 の出力例:

00 00 44 44 88 88 cc cc

これは、入力の最初の「列」にすぎません。

perlやpythonでこれを行うのは簡単ですが、ターゲットシステムにはperlやpythonがなく、基本的なユーティリティしかないため、シェルスクリプトでこの機能が必要です。そのために既存のツールを悪用する方法があることを願っています。それが不可能な場合は、それを行うCをいくつか書きますが、避けたいと思います。

1 つの使用例は、生のオーディオ ファイルから 1 つのオーディオ チャネルを抽出することです。

4

1 に答える 1

0

(「ゼブラ ストライプ」以外で) 検索する可能性のある用語は「ストライド」です。これは、毎回 k バイトをスキップするというこの考え方を呼ぶ人もいます。

あなたの投稿からは完全には明らかではありませんが、実際にはこのフィルターをパイプラインに挿入し、生のバイトを消費して同じものを出力できるようにしたいようです。この場合、単純なシェル スクリプトで簡単に実行する方法がわからないので、C で書くか、ターゲット システムに Python などをインストールすることをお勧めします。

于 2011-06-05T14:06:41.160 に答える