在Linux中组合不同文件夹中的两个文件

sfa*_*tor 6 linux bash scripting command-line

我有两组文件夹,其文件具有相同的文件名和结构.文件夹结构是这样的:

\outputfolder\
 |---\folder1\
 |      |---file1.txt
 |      |---file2.txt
 |
 |---\folder2\
        |---file1.txt
        |---file2.txt
Run Code Online (Sandbox Code Playgroud)

所以我需要做的是将这些文件夹中的所有文件(file1.txt与file1.txt等)组合(附加)到outputfolder中的另一个文件中.获取这些组合文件后,我还需要从所有这些组合文件中创建tar.gz文件.

如何在基于Linux的命令行环境中完成此操作?文件夹名称(folder1和folder2等)是可变的,因此需要给出但文件不需要,它应自动组合所有具有相同名称的文件.

此外,这些文件具有列名称的标题,因此我还需要在追加时删除它.

mhy*_*itz 5

这是一些可以帮助您入门的代码

topdir=outputfolder
dir1=folder1
dir2=folder2

for f in $topdir/$dir1/*.txt
do
    outf=$topdir/`basename $f .txt`-concat.txt
    cp $f $outf
    sed -e '1 d' $topdir/$dir2/`basename $f` >> $outf
done

tar czf foo.tar.gz $topdir/*-concat.txt
Run Code Online (Sandbox Code Playgroud)

编辑:添加了删除第二个文件的标题的部分。