Найти в заданном каталоге, если существуют 2 файла с одинаковым содержимым независимо от их имен

Используйте ниже awk одну строку для достижения.

Приведенная ниже команда удалит содержимое файла file.txt из файла passwd. Проверено, работает нормально

awk 'NR==FNR{a[$1];next}!($1 in a){print $1}' file.txt passwd
0
28.01.2019, 20:06
2 ответа
for x in *; do for y in *; do [ "$x" = "$y" ] && continue; cmp -s "$x" "$y" && echo Same: "$x" and "$y"; done; done|head -1

Или немного разбит для удобства чтения:

for x in *
do 
  for y in *
  do 
    [ "$x" = "$y" ] && continue
    cmp -s "$x" "$y" && echo Same: "$x" and "$y"
  done
done | head -1

headпредназначен только для того, чтобы зеркало сообщало ("a = b" и "b = a" ).

0
28.01.2020, 04:03
find. -type f -exec md5sum "{}" \; | awk 'seen[$1] { print "Duplicate file "$2" with hash "$1" at "seen[$1]" } ! seen[$1] {seen[$1]=$2}'
0
28.01.2020, 04:03

Теги

Похожие вопросы