引数として提供されたファイルからデータを読み取るプログラムにデータをどのようにストリーミングしますか?

引数として提供されたファイルからデータを読み取るプログラムにデータをどのようにストリーミングしますか?

私は巨大なgzip圧縮ファイルを持っていてそれを読むことができるプログラム(この場合は4s-import)が欲しいです。まず、ファイルを解凍してから、ファイルパスを引数として使用してプログラムを呼び出すのに時間がかかります。次のことができますか?

zcat huge.gz | 4s-import <SOME MAGIC>

SOME-MAGICがstdinを含む抽象ファイルへのパスと同じ場合はどこですか?

それ以外の場合は、より遅く、より多くのディスク容量を消費する代替方法は次のとおりです。

zcat huge.gz > huger
4s-import huger

ベストアンサー1

(または)手続き型代替演算子を使用できます<()bashzsh

4s-import <(zcat huge.gz)

この演算子は一時的なfifoを生成し/dev/fd/NN、それを<(.)文字列に置き換えます/dev/fd/NN4s-importこれで/dev/fd/NNfifoを開いて読むことができ、bash実行はzcat huge.gz出力を/dev/fd/NN

おすすめ記事