FOR循环遍历两个文件夹

时间:2014-12-03 07:52:22

标签: bash for-loop comparison

我有两个要比较的文件夹,但使用diff -r来做这件事并不是那么简单。

我使用的是小条件函数,而不是差异。也许函数本身很重要,所以我将它粘贴在这里。

function timeDiff() {

local time1="$(head -n 1 "$1")"

local time2="$(head -n 1 "$2")"

    echo $time1
  echo $time2

  if (( "$time1" < 60)) && (( "$time2" < 60)); then  

  echo No comparision needed. 

  else

    diff $1 $2

    fi
}

现在。我有2个文件夹,它们目前看起来像这样:

Folder name: 1    Folder name: 2
1.txt             1.txt
2.txt             2.txt

这是我眼中的盐。第二个功能。它的目的是(可能包含伪代码):

  1. 在for循环中迭代两个文件夹,取第一个文件1.txt,检查第二个文件夹中是否有同名文件1.txt,如果有,请运行{{ 1}}对它们起作用,然后转到下一个文件(timeDiff),依此类推,依此类推。
  2. 现在第二个功能看起来像这样:

    1/2.txt``2/2.txt

    我尝试过几次,但我似乎找不到一种方法来至少运行具有多种条件的for循环...

1 个答案:

答案 0 :(得分:2)

function recuDiff {
  find 1 -maxdepth 1 -mindepth 1 -printf '%P\n' |
  while read each
  do
    if [ -e 2/"$each" ]
    then
      timeDiff {1,2}/"$each"
    fi
  done
}
  1. 1
  2. 中查找内容
  3. 如果2中存在内容,请运行timeDiff
  4. 但是我必须说更好/更容易做的就是检查一下 对于timeDiff中不存在的文件。