0

私の仕事を単純化するために、私は通常これを行います:

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

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

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

私はそれがこのようなもののように見えるべきだと想像します:

  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の数を実行します。そして、どこに入れればいいのかわからないネーミングの問題も...

私が何を求めているのかが明確であることを願っています。以前にそのようなタスクを実行する必要はなく、コマンドラインが非常に役立ちます。

楽しみにしている!

4

1 に答える 1

2
NEWNAME="${FILE_A##*/}_${FILE_B##*/}_output.txt"
于 2012-04-19T19:00:54.147 に答える