그래서 문제는 .txt와 .doc와 같이 두 가지 다른 확장자를 가진 파일을 비교하고 복사해야 한다는 것입니다. 이러한 파일은 이름은 동일하지만 내용이 다를 수 있습니다. play.txt와 play.doc의 내용이 동일하다면 .doc 버전을 복사해야 합니다. 단, 내용이 다를 경우에는 두 파일을 모두 복사해야 합니다.
답변1
파일을 비교하고 복사할 파일을 선택하려면 실제로 비교해야 합니다.콘텐츠. (and) 와 .doc
같은 독점 파일 형식에서는 이것이 어려울 수 있습니다 .docx
.
당신은 할 수첫 번째.doc
헤드리스 모드에서 libreoffice를 사용하여 파일을 텍스트로 변환합니다.
libreoffice --headless --convert-to txt:text mydocument.doc
ㅏ두번째.doc
step에서는 파일을 비교할 수 있지만 변환된 파일이 버전과 정확히 동일한 내용을 가질지는 의심스럽습니다 .txt
. 이로 인해 프로그래밍 방식으로 파일을 비교하기가 어렵습니다(불가능하지는 않더라도).
답변2
두 파일이 모두 text 인 경우 이 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
. 그렇다면 파일이 다르므로 둘 다 복사해야 합니다. 그렇지 않으면 파일 1만 복사합니다.