、私はいくつかのコマンドcmd
を使用して処理する必要があるいくつかの百input0.dat
、input1.dat
のようなものをという名前のファイル、...、input150.dat
を、持っている(これは基本的にすべてのファイルの内容をマージします)。 cmd
は、最初のオプションとして、出力ファイル名と、すべての入力ファイル名のリストを取ります
./cmd output.dat input1.dat input2.dat [...] input150.dat
問題:
問題は、スクリプトのみに起因して10個のファイルまたはそのように扱うことができるということですメモリの問題(それを私に責めないでください)。したがって、代わりに
./cmd output.dat *dat
ようbash
ワイルドカード拡張機能を使用して、私はその後、私は一時的な出力をマージすることができ
./cmd temp_output0.dat file0.dat file1.dat [...] file9.dat
[...]
./cmd temp_outputN.dat fileN0.dat fileN1.dat [...] fileN9.dat
ような何かをする必要があります。
./cmd output.dat output0.dat [...] outputN.dat
方法bash
に、この効率的にIスクリプトを実行しますか?
私は、成功しなかった。
EDIT:cmd
を呼び出すときに、出力ファイル名を最初のコマンドライン引数として指定する必要があることに注意してください。
はい!それが私が探していたものです。ありがとう。 – fuenfundachtzig
これは本当に必要なものよりも複雑です。一時ファイルは避けることができます。 'xargs'を' while read 'にパイプするだけです。バックグラウンド処理は素晴らしいかもしれませんが、仕事がどれほど重いかなどによって不必要に複雑になることもあります。 – tripleee