私はこのようなコマンドを実行しようとしています:bashスクリプトをパラレル化して競合条件がなくても `find`と一緒に使うには?
find ./ -name "*.gz" -print -exec ./extract.sh {} \;
自体が小さいgz
ファイルを。現在、私のextract.sh
には以下が含まれています。
# Start delimiter
echo "#####" $1 >> Info
zcat $1 > temp
# Series of greps to extract some useful information
grep -o -P "..." temp >> Info
grep -o -P "..." temp >> Info
rm temp
echo "####" >> Info
私は複数のextract.sh
のインスタンスを実行する場合、それらはすべて同じファイルに書き込むので、これは並列化ではありません。これを行うスマートな方法は何ですか?
私は80K gz
ファイルを32コアの大規模な馬力を持つマシンに持っています。
抽出するファイルごとに個別の一時ファイルを使用できない理由はありますか? –
uuoc: 'cat temp | grep'は冗長で、grepは入力ファイルを引数として受け取ります。 –
私は最終的に単一の集約ファイルを望んでおり、これを行う最も効率的な方法を探しています。私の場合、これは追加の80Kファイルを作成することを意味します。あなたはそれが問題ではないと思いますか? – Legend