Find duplicate files: Difference between revisions
m
→{{header|Raku}}: fix call that generates digest
m (→{{header|Phix}}: added syntax colouring, marked p2js incompatible) |
SqrtNegInf (talk | contribs) m (→{{header|Raku}}: fix call that generates digest) |
||
Line 1,213:
=={{header|Raku}}==
(formerly Perl 6)
This implementation takes a starting directory (defaults to the current directory) and has a few flags to set behaviour: --minsize, minimum file size to look at, defaults to 5 bytes; and --recurse, recurse into the directory structure, default True. It finds files of the same size, calculates hashes to compare, then reports files that hash the same.
Line 1,233:
for %files.sort( +*.key ).grep( *.value.elems > 1)».kv -> ($size, @list) {
my %dups;
@list.map: { %dups{ sha256-hex( ($_.slurp :bin).decode ) }.push: $_.Str };
for %dups.grep( *.value.elems > 1)».value -> @dups {
say sprintf("%9s : ", scale $size ), @dups.join(', ');
|