unix 将单独文件夹中的两个文件连接到多个文件夹中

ebdffaop  于 2022-11-23  发布在  Unix
关注(0)|答案(1)|浏览(213)

我有包含文件a1_1、a1_2、a2_1、a2_2、a3_1、a3_2的文件夹和包含b1_1、b1_2、b2_1、b2_2、b3_1、b3_2的另一个目录中的文件夹。想要将它们合并到一个新文件夹中,如下所示:
1_1(文件夹)a1_1 b1_1
1_2(文件夹)a1_2 b1_2
2_1(文件夹)a2_1 b2_1
2_2(文件夹)a2_2 b2_2
我用的是UNIX,我有300对文件要合并,一个一个的比较麻烦,请帮忙

gojuced7

gojuced71#

您可以使用基本的bash脚本轻松地完成此操作,下面是一个如何完成此操作的示例,并附有解释步骤的注解。

#!/bin/bash

source_dir_a=$1  // Directory containing a files given as first argument
source_dir_b=$2  // Directory containing b files given as second argument

a_files=$(ls $source_dir_a)  // Save list of files in provided a dir

for a_file in $a_files; do   // Loop over the files in the a dir
    echo "a_file=$a_file"
    folder=$(echo $a_file | sed -e 's/^a//g')  // Remove the leading "a" of a files using a regex for the storing folder name
    echo "folder=$folder"
    b_file=$(echo b$folder)  // Adding leading "b" to folder name to have b_file name
    echo "b_file=$b_file"
    mkdir $folder  // Create output folder
    mv $source_dir_a/$a_file $source_dir_b/$b_file $folder // Move the a and b files in output folder
done

缺少的是一些错误检查,特别是当一些预期的文件不存在时。

相关问题