ワイルドカードを使用したリダイレクトをテストしています。何かのようなもの:
./TEST* < ./INPUT* > OUTPUT
誰にもお勧めはありますか?ありがとう。
、、、、、の 5 つのファイルがTEST1あるTEST1とINPUT1しINPUT2ますOUTPUT。コマンドライン
./TEST* < ./INPUT* > OUTPUT
に拡大します
./TEST1 ./TEST2 < ./INPUT1 ./INPUT2 > OUTPUT.
./TEST1つまり、 2 つの引数 ( ./TEST2, ./INPUT2) を指定してコマンドを実行し、入力を からリダイレクトし./INPUT1、出力を にリダイレクトしOUTPUTます。
おそらくやろうとしていることに対処するために、入力リダイレクトを使用して単一のファイルのみを指定できます。TEST両方のファイルから入力を送信するにINPUT*は、プロセス置換を使用して、次のようなものを使用する必要があります。
./TEST1 < <(cat ./INPUT*) > OUTPUT
TEST*一致するすべての入力ファイルで一致する各プログラムを実行するにはINPUT*、次のループを使用します。すべてのコマンドの出力を収集し、1 つのファイルにまとめますOUTPUT。
for test in ./TEST*; do
cat ./INPUT* | $test
done > OUTPUT
INPUT* と呼ばれるさまざまなリダイレクトを取得する必要がある TEST* というプログラムがあります。私がやろうとしているのは、すべてのランダムな INPUT ファイルをすべてのすべての TEST プログラムにプッシュすることです。
あなたは書ける:
for program in TEST* # e.g., program == 'TEST678'
do
suffix="${program#TEST}" # e.g., suffix == '678'
input="INPUT$suffix" # e.g., input == 'INPUT678'
"./$program" < "$input" # e.g., run './TEST678 < INPUT678'
done > OUTPUT
for test in ./TEST*; do
for inp in ./INPUT*; do
$test < $inp >> OUTPUT
done
done