Bash 用于循环遍历两个文件夹
我有两个文件夹要比较,但仅仅使用diff-r来比较并不是那么简单 我使用的不是diff,而是一个小的条件函数。也许函数本身很重要,所以我将把它粘贴在这里Bash 用于循环遍历两个文件夹,bash,for-loop,comparison,Bash,For Loop,Comparison,我有两个文件夹要比较,但仅仅使用diff-r来比较并不是那么简单 我使用的不是diff,而是一个小的条件函数。也许函数本身很重要,所以我将把它粘贴在这里 function timeDiff() { local time1="$(head -n 1 "$1")" local time2="$(head -n 1 "$2")" echo $time1 echo $time2 if (( "$time1" < 60)) && (( "$time2" <
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
}
这是我眼中的盐。第二个功能。其目的是(可能包含伪代码):
1.txt
,检查第二个文件夹中是否有同名的文件1.txt
,如果有,对它们运行timeDiff
函数,然后转到下一个文件(1/2.txt``2/2.txt
)等等Folder name: 1 Folder name: 2
1.txt 1.txt
2.txt 2.txt
function recuDiff() {
for file1 in $1 && file2 in $2
do
timeDiff $file1 $file2
done
}
我尝试了好几次,但我似乎没有找到一种方法,至少在多个条件下运行for循环
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
@SandyElms中不存在的文件:抱歉,添加错误。在原始代码中未出现此项;)for
循环中的in
关键字不会检查目录中是否存在文件。看@dziki看到我的最后一句话了,我刚刚加了它