<(cut -c -32 md5sums.sort.XXX)
üzerinde diff
kullanan tek md5 sütunu karşılaştırın düşünün ve eklenen veya kaldırılan hatlarının sadece satır numaralarını yazdırmak için diff
anlatmak --old/new-line-format='%dn'$'\n'
kullanarak. Bunu ed md5sums.sort.XXX
içine gönderin, böylece yalnızca md5sums.sort.XXX
dosyasındaki satırları yazdıracaktır.
diff \
--new-line-format='%dn'$'\n' \
--old-line-format='' \
--unchanged-line-format='' \
<(cut -c -32 md5sums.sort.old) \
<(cut -c -32 md5sums.sort.new) \
| ed md5sums.sort.new \
> files-added
diff \
--new-line-format='' \
--old-line-format='%dn'$'\n' \
--unchanged-line-format='' \
<(cut -c -32 md5sums.sort.old) \
<(cut -c -32 md5sums.sort.new) \
| ed md5sums.sort.old \
> files-removed
ed
sorun size sağlama çok şey var eğer bir sorun olabilir belleğe dosyanın tamamını yüklemek olacaktır. Farkı ed
içine borulamak yerine, daha az bellek kullanacak olan aşağıdaki komutla boruya geçirin. çift dosyaları arıyorsanız
diff … | (
lnum=0;
while read lprint; do
while [ $lnum -lt $lprint ]; do read line <&3; ((lnum++)); done;
echo $line;
done
) 3<md5sums.sort.XXX
yaparak yükleyebilirsiniz * n * karakterleri, bir şey gibi: 'diff <(cut -b-80 dump.csv) <(cut -b-80 dump2.csv)' (burada, 'n' = 80) –