如果文件具有相同的校验和,则使文件大小为零

Ad-Vic

我有一个数组,其中包含所有文件(C文件)的路径。

我正在使用Perl

@大批

C:\temp\a.c
C:\temp\b.c
C:\temp\x.c
C:\temp\y.c
C:\temp\z.c

尽管文件名不同,但很少文件可能具有相同的校验和(这意味着它们具有相同的内容)。这些仅成对存在。我必须将其中之一的大小设为0。

代码

use File::Checksum;

my %array;
foreach my $k(@files3)
{                       
      $array{$k} = Checksum($k, 100);   
}

# have to check if they have same checksum and make those file to size 0

#making file size to 0 is easy. 
#I just have to open file in write mode and then close it.

在如何比较数组中所有文件的校验和并获取具有相同校验和的文件的文件名方面需要帮助

疾病

创建哈希“数组”令人困惑。将其命名为“哈希”不太容易混淆,但是像“唯一”或“校验和”之类的名称可能会更好。

使用校验和作为密钥,而不是文件名:

my %checksum;
for my $f (@files) {
    push @{ $checksum{ Checksum($f, 100) } }, $f;
}

数组的哈希现在包含按校验和分组的所有文件。删除重复项:

for my $ch (keys %checksum) {
    my @same = @{ $checksum{$ch} };
    if (@same == 2) {
        open my $FH, '>', $same[1] or die $!;
    } elsif (@same > 2) {
        warn "More than 2 files: @same. None deleted.\n";
    }
}

(未经测试。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果未设置值,则SQLite将具有匹配校验和的记录设置为相同值

来自分类Dev

具有相同数据的两种不同格式的文件是否可以具有相同的校验和值?

来自分类Dev

如何删除具有相同大小和日期的重复文件?

来自分类Dev

Bash查找大小为零的文件并删除具有不同扩展名的文件

来自分类Dev

带有文件大小的MD5校验和

来自分类Dev

Btrfs文件系统上具有No_COW文件属性的文件是否保留数据校验和?

来自分类Dev

如何恢复由另一个具有相同名称和大小的文件替换的文件

来自分类Dev

在具有相同大小但内容不同的 hdfs 上同步文件

来自分类Dev

为什么 git 为具有不同名称和位置的文件分配相同的哈希?

来自分类Dev

OSX:在文本文件中递归生成MD5校验和,该文本文件包含具有相应校验和的文件

来自分类Dev

损坏文件的校验和

来自分类Dev

Windows批处理:如何检查文本文件是否为空白(文件具有空行,因此大小不为零)

来自分类Dev

文件哈希/校验和值是否区分大小写?

来自分类Dev

在C中复制后,文件校验和不相同

来自分类Dev

VBA Excel 修改文件并保持相同的校验和

来自分类Dev

为目录中的所有文件生成md5校验和

来自分类Dev

使用virt-manager(qemu-kvm)时,如何备份和还原具有相同vol文件大小的VM?

来自分类Dev

具有相同数量的离散属性的两个相同类型的文件是否具有相同的大小?

来自分类Dev

验证CRC校验和是否为零

来自分类Dev

复制的DocumentFile具有与原始文件不同的大小和哈希

来自分类Dev

具有大RAM和SSD的Windows页面文件大小

来自分类Dev

.c和.o文件是否必须具有相同的名称?

来自分类Dev

搜索和打印具有相同MD5的文件

来自分类Dev

移动具有相同的不区分大小写文件名的文件

来自分类Dev

如何在Maven中为War文件生成校验和

来自分类Dev

为每个文件夹写入校验和

来自分类Dev

如何将vim设置为具有与打开的文件相同的选项卡和空间约定?

来自分类Dev

如果Shell中的大小非零,如何复制文件?

来自分类Dev

TCL文件校验和匹配

Related 相关文章

  1. 1

    如果未设置值,则SQLite将具有匹配校验和的记录设置为相同值

  2. 2

    具有相同数据的两种不同格式的文件是否可以具有相同的校验和值?

  3. 3

    如何删除具有相同大小和日期的重复文件?

  4. 4

    Bash查找大小为零的文件并删除具有不同扩展名的文件

  5. 5

    带有文件大小的MD5校验和

  6. 6

    Btrfs文件系统上具有No_COW文件属性的文件是否保留数据校验和?

  7. 7

    如何恢复由另一个具有相同名称和大小的文件替换的文件

  8. 8

    在具有相同大小但内容不同的 hdfs 上同步文件

  9. 9

    为什么 git 为具有不同名称和位置的文件分配相同的哈希?

  10. 10

    OSX:在文本文件中递归生成MD5校验和,该文本文件包含具有相应校验和的文件

  11. 11

    损坏文件的校验和

  12. 12

    Windows批处理:如何检查文本文件是否为空白(文件具有空行,因此大小不为零)

  13. 13

    文件哈希/校验和值是否区分大小写?

  14. 14

    在C中复制后,文件校验和不相同

  15. 15

    VBA Excel 修改文件并保持相同的校验和

  16. 16

    为目录中的所有文件生成md5校验和

  17. 17

    使用virt-manager(qemu-kvm)时,如何备份和还原具有相同vol文件大小的VM?

  18. 18

    具有相同数量的离散属性的两个相同类型的文件是否具有相同的大小?

  19. 19

    验证CRC校验和是否为零

  20. 20

    复制的DocumentFile具有与原始文件不同的大小和哈希

  21. 21

    具有大RAM和SSD的Windows页面文件大小

  22. 22

    .c和.o文件是否必须具有相同的名称?

  23. 23

    搜索和打印具有相同MD5的文件

  24. 24

    移动具有相同的不区分大小写文件名的文件

  25. 25

    如何在Maven中为War文件生成校验和

  26. 26

    为每个文件夹写入校验和

  27. 27

    如何将vim设置为具有与打开的文件相同的选项卡和空间约定?

  28. 28

    如果Shell中的大小非零,如何复制文件?

  29. 29

    TCL文件校验和匹配

热门标签

归档