0

您好,我想迭代合并 input_directory 中的文件并将合并后的文件放入 output_directory。

假设在 input_directory 我有:file1.txt,file2.txt,file3.txt

我希望输出目录包含以下文件:

  • merge1.txt :与 file1.txt 相同
  • merge2.txt : 合并 file1.txt file2.txt
  • merge3.txt : 合并 file1.txt file2.txt file3.txt

我几乎没有使用 bash 脚本的经验,很明显可以在 for 循环中使用迭代器来完成,但我不知道如何操作。

先感谢您..

4

1 回答 1

0

存储附加到输出的先前文件名并在下一次迭代中使用它:

#!/bin/bash

touch prev #a temp variable to hold previous filename
i=1;

for file in $(ls /INPUT/file*); 
do 
   cat /OUTPUT/$prev /INPUT/$file > /OUTPUT/merge$i;
   prev=merge$i;
   let i=i+1
 done

此代码利用事实ls列出具有相同前缀的文件。如果您的文件名具有不同的前缀,并且您想要输出它们的特定顺序,您可以修改它。

于 2012-10-26T16:44:55.993 回答