定期间隔文件以到达三个不同目录的数字结尾。 (文件格式= filename_number.mxf) 我提出的脚本剥去了最后四个文件的编号 并将它们放入变量中。该脚本将由 incrond
执行for bier in $(ls -tr *.mxf | tail -n -4)
do
file="${bier#*_}"
base=${file%.*}
echo $base
done;
但是我如何在三个目录的连续性上测试它 并告诉这个发生在哪个目录? (在下面的示例中, dir2 中的编号为20117的文件未到达, 当发生这种情况时,我想提出一个警告/触发器)
这应该报告为正确:
<dir1> <dir2> <dir3>
20114 20114 20114
20115 20115 20115
20116 20116 20116
20117 20117 20117
这应该报告为不正确: (dir2中的文件是其余文件的一个文件)
<dir1> <dir2> <dir3>
20114 20113 20114
20115 20114 20115
20116 20115 20116
20117 20116 20117
答案 0 :(得分:0)
也许这样的事情会有所帮助
$ f() { ls -tr $1/*.mxf | tail -n -4 | xargs -n1 basename; };
cmp --silent <(f dir1) <(f dir2) && cmp --silent <(f dir2) <(f dir3);
echo $?
1