处理多个文件集的循环

时间:2012-04-19 18:46:24

标签: shell

为了简化我的工作,我通常会这样做:

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

因此,进程循环遍历所有* .txt文件。

现在我有两个文件组 - 我的工具使用两个输入(-a和amp; -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 

因此,该过程将在filesA中运行* .txt数,而不是在filesB中运行* .txt数。 还有我甚至不知道放在哪里的命名问题...

希望很清楚我在问什么。从来没有必要做过这样的任务,命令行真的很有用。

期待!

1 个答案:

答案 0 :(得分:2)

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