使用 comm 比较两个 csv 文件

Comparing two csv files using comm

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

file_1.csv = 待处理任务

file_2.csv = 任务已处理

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

if comm -3 file_1.csv file_2.csv;

then

mv file_1.csv file_2.csv
mutt -s "subject" -a file_1.csv -- somebody@domain.com < body_email.txt 
rm file_1.csv

else

exit

fi

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

谁能告诉我哪里出了问题?

谢谢!

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

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 -- somebody@domain.com < body_email.txt
    rm file_1.csv
fi