使用comm比较两个csv文件

问题描述 投票:0回答:1

我正在使用一个脚本来验证两个csv文件(file_1.csv和file_2.csv)之间的差异。

file_1.csv =要处理的任务

file_2.csv =任务已处理

  • 如果没有区别,则不应采取任何措施。
  • [如果存在差异,则file_1.csv应该替换file_2.csv,而file_1.csv通过电子邮件发送。最后,file_1.csv被删除。

为此,我写了以下内容,但似乎不起作用。显然,第一个“ comm”命令有效,但是在此阶段仍然停留。

如果comm -3 file_1.csv file_2.csv;

然后

mv file_1.csv file_2.csv
mutt -s "subject" -a file_1.csv -- [email protected] < body_email.txt 
rm file_1.csv

else

exit

fi

提示中显示“ if com -3”的输出,但我没有收到提示。

有人可以告诉我怎么了吗?

谢谢!

bash csv mutt comm
1个回答
0
投票

您可能想在比较之前对文件进行排序,请尝试:

comm -23 <(sort -u file_1) <(sort -u file_2)

这将为您提供所有尚未处理的任务

例如,尝试下面的代码片段:

diff=`comm -23 <(sort -u file_1) <(sort -u file_2)`
if [ $diff > 0 ]
then
    cp file_1 file_2
    mutt -s "subject" -a file_1.csv -- [email protected] < body_email.txt
    rm file_1.csv
fi
© www.soinside.com 2019 - 2024. All rights reserved.