获取文件夹中的文件名称并使用它们从其他文件夹中移入包含这些名称的文件?

时间:2016-02-03 19:33:13

标签: bash unix

我有两个文件夹如下:

obj = {
  obj1: {
   obj2: {
     data: 'whatever'}}}

我想要做的是识别folder1中与folder2中文件名相同的文件,与扩展名无关,并将它们传输到folder2。输出应为:

var obj = creator('obj.obj1.obj2.data', 20);

这是我到目前为止所得到的:

folder1
file1.shp
file1.dbf
file2.shp
file2.dbf
file3.shp
file3.dbf


folder2
file1.prj
file2.prj
file4.prj

这是我从这段代码中获得的,但文件不会从folder1移动到folder2。

folder2
file1.prj
file2.prj
file4.prj
file1.shp
file1.dbf
file2.shp
file2.dbf

抱歉,我昨天开始学习这种编程,所以非常感谢任何帮助。

[编辑]

代码在第3行中没有回音。感谢那些在下面评论指出它的人。

for i in folder2/*.*; do
  FILE=$(basename "$i")
  echo find folder1 -name ${FILE%.*}.* -exec mv -i {} folder2 \;
done

1 个答案:

答案 0 :(得分:0)

我只是这样试过,它对我有用......

#!/bin/bash

for f in folder2/*
do
filename=${f##*/}
filename_without_ext=${filename%.*}

for ff in ${filename_without_ext[@]}
do
    find folder1 -name ${ff}.* -exec mv -i {} folder2 \;
done

done