根据计数比较两个文件,如果计数不同,则通过邮件通知

时间:2014-03-05 20:39:10

标签: bash if-statement for-loop

我正在尝试比较同一目录中的两个文件,例如a.txt,a1.txt,b.txt,b1.txt,c.txt,c1.txt。现在我有一个类似的多个文件。如果有任何改变,它必须邮寄给我。我已经在下面写了一个示例代码,但这些错误对我而言。如果有人可以帮助纠正我在代码中的错误,或者还有其他更好的方法来解决这个问题。

for k in ls !*1.txt ;
do 
k1=$( wc -l < "$k" )
done
for i in ls *1.txt ;
do 
i1=$( wc -l < "$i" )
done
if [ "$k1" != "$i1" ];
then
grep -vf "$i" "$k" |  mail -s "hi" example@hifi.com ;
fi 

1 个答案:

答案 0 :(得分:0)

也许不明白,但试试这个

for ones in *1.txt
do
        diff "$ones" "${ones%1.txt}.txt"
done | mail -s 'changed files' example@hifi.com

进行测试,省略| mail -s 'changed files' example@hifi.com