比较具有不同扩展名但可能内容相似的文件

比较具有不同扩展名但可能内容相似的文件

所以问题是我需要比较和复制具有 2 个不同扩展名的文件,例如 .txt 和 .doc 。这些文件可能具有相同的名称但内容不同。如果 play.txt 和 play.doc 的内容相同,那么我需要复制 .doc 版本。但是,如果内容不同,则必须复制两个文件。

答案1

要比较文件并选择一个进行复制,您需要实际比较它们内容。对于诸如.doc(与)之类的专有文件格式来说,这可能会很困难.docx

你可以第一的.doc在无头模式下使用 libreoffice 将文件转换为文本:
libreoffice --headless --convert-to txt:text mydocument.doc

A第二步骤可以比较文件,尽管我怀疑转换后的文件.doc是否具有与版本完全相同的内容.txt,这使得以编程方式比较它们变得困难(如果不是不可能的话)。

答案2

如果两个文件都是文本,您可以使用该diff命令。

FILE_ONE=/home/file_one.txt
FILE_TWO=/home/file_two.txt

if [ -n "$(diff $FILE_ONE $FILE_TWO)" ];then
    cp $FILE_ONE /new_place/
    cp $FILE_TWO /new_place/
else
    cp $FILE_ONE /new_place/
fi

这会检查是否diff返回任何内容,如果是,则文件不同并且都应该复制,否则它只复制文件一。

相关内容