所以问题是我需要比较和复制具有 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
返回任何内容,如果是,则文件不同并且都应该复制,否则它只复制文件一。