我有两个要比较的文件夹,但使用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.txt
,检查第二个文件夹中是否有同名文件1.txt
,如果有,请运行{{ 1}}对它们起作用,然后转到下一个文件(timeDiff
),依此类推,依此类推。现在第二个功能看起来像这样:
1/2.txt``2/2.txt
我尝试过几次,但我似乎找不到一种方法来至少运行具有多种条件的for循环...
答案 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
2
中存在内容,请运行timeDiff
但是我必须说更好/更容易做的就是检查一下
对于timeDiff
中不存在的文件。