2012-04-19 9 views
0

を設定します。プロセスループは、私は通常これを行う私の仕事を簡単にするために

for FILE in ./*.txt; 
    do ID=`echo ${FILE} | sed 's/^.*\///'`; 
    bin/Tool ${FILE} > ${ID}_output.txt; 
    done 

したがって、プロセスは、すべての* .txtファイルをループします。

私のツールは2つの入力(-a & -b)を使用する2つのファイルグループを持っています。各FILE_BのすべてのFILE_Aに対してツールを実行し、両方の組み合わせとして出力ファイルに名前を付けるコマンドはありますか?

私はそれがこのようなもののようになります想像:

for FILE_A in ./filesA/*.txt; 
    do for FILE_B in ./filesB/*.txt; 
    bin/Tool -a ${FILE_A} -b ${FILE_B} > output.txt; 
    done 

ので、プロセスがfilesBで* .txtの数にわたりfilesAに* .txtファイルの数を実行します。 また、私はどこに置くべきかわからない命名問題もあります...

私は何を求めているのでしょうか。前にこのようなタスクを実行する必要はなかったので、コマンドラインが本当に役に立ちました。

楽しみにしています!

+1

多くの人が*ライティング*ワンライナーを好む人は少なくありませんが、*読んでほしい人はほとんどいません。 –

+0

問題はありません - 固定:) – PoGibas

+0

あなたが見逃しているように見えるのは、内側のループのために 'do'と' done'です –

答えて

2
NEWNAME="${FILE_A##*/}_${FILE_B##*/}_output.txt" 
+0

しかし、複数のファイルグループに対してコマンドはどうですか? – PoGibas

+1

あなたはすでにそれを持っています。それぞれのために 'do'が必要であることを覚えておいてください。 –

+0

これは正常ですか?:./filesA/*.txtのFILE_Aの ; do ID = 'echo $ {FILE_A} | sedさんの/^.*\/// ''; ./filesB/*.txtのFILE_Bの 。do ID2 = 'echo $ {FILE_B} | sedさんの/^.*\/// ''; bin/Tool -a $ {FILE_A} -b $ {FILE_B}> $ {ID} _ $ {ID2} _output.txt; 完了。 done – PoGibas

関連する問題