Сравнение файлов в сценарии оболочки: несколько методов с примерами кода

Я предоставлю вам несколько методов сравнения двух файлов с помощью сценария оболочки, а также примеры кода. Вот пять различных подходов, которые вы можете использовать:

Метод 1: использование команды cmp

#!/bin/bash
file1="file1.txt"
file2="file2.txt"
if cmp -s "$file1" "$file2"; then
    echo "Files are identical."
else
    echo "Files are different."
fi

Метод 2: использование команды diff

#!/bin/bash
file1="file1.txt"
file2="file2.txt"
if diff "$file1" "$file2" >/dev/null; then
    echo "Files are identical."
else
    echo "Files are different."
fi

Метод 3: сравнение построчно

#!/bin/bash
file1="file1.txt"
file2="file2.txt"
diff_output=$(diff "$file1" "$file2")
if [ -z "$diff_output" ]; then
    echo "Files are identical."
else
    echo "Files are different."
fi

Метод 4: использование команды md5sum

#!/bin/bash
file1="file1.txt"
file2="file2.txt"
md5sum1=$(md5sum "$file1" | awk '{print $1}')
md5sum2=$(md5sum "$file2" | awk '{print $1}')
if [ "$md5sum1" = "$md5sum2" ]; then
    echo "Files are identical."
else
    echo "Files are different."
fi

Метод 5: использование команды cmpс собственным сообщением об ошибке

#!/bin/bash
file1="file1.txt"
file2="file2.txt"
if cmp -s "$file1" "$file2"; then
    echo "Files are identical."
else
    echo "Files are different. Files differ at byte $(cmp -l "$file1" "$file2" | awk '{print $1}')"
fi