UNIX下批量合并不同目录对应文件至新文件夹的技术求助
UNIX下批量整理对应文件到目标文件夹的方法
假设你的两个源目录分别为dir_a(存放a开头文件)和dir_b(存放b开头文件),要将对应后缀的文件整理到target_dir下的子目录中,可通过以下shell脚本实现:
步骤1:定义路径变量
先替换脚本中的路径为你实际的目录路径:
SOURCE_A="./dir_a" # a开头文件所在目录 SOURCE_B="./dir_b" # b开头文件所在目录 TARGET="./target_dir" # 目标根目录
步骤2:批量处理脚本
执行以下循环脚本,自动创建子目录并复制对应文件:
for file in "$SOURCE_A"/a*; do # 提取文件名中a之后的后缀部分(如a1_1 → 1_1) suffix="${file##*a}" # 创建目标子目录(不存在则自动创建) mkdir -p "$TARGET/$suffix" # 复制dir_a中的文件到对应子目录 cp "$file" "$TARGET/$suffix/" # 复制dir_b中对应的b开头文件到同一子目录 cp "$SOURCE_B/b$suffix" "$TARGET/$suffix/" done
测试建议
为避免误操作,可先将cp替换为echo,打印出将要执行的命令,验证逻辑是否正确:
for file in "$SOURCE_A"/a*; do suffix="${file##*a}" echo "mkdir -p $TARGET/$suffix" echo "cp $file $TARGET/$suffix/" echo "cp $SOURCE_B/b$suffix $TARGET/$suffix/" done
注意事项
- 若文件带扩展名(如
a1_1.txt),脚本依然有效,后缀会包含扩展名,对应b1_1.txt会被正确匹配复制。 - 确保你对源目录有读取权限,对目标目录有写入权限。
内容的提问来源于stack exchange,提问作者alnus meinata
相关产品推荐
相关产品推荐

