Je recherche une ligne de code qui identifie les fichiers manquants dans une série de fichiers et exporte cette liste dans un fichier txt. Par exemple: un répertoire appelé 1to100000 contient des pdfs nommés 1,2 ... 99999,100000 mais il manque quelques uns de la série. Je voudrais que le script signale ces fichiers manquants dans un fichier txt. Idéalement, ce serait un script Perl exécutable. Merci, JakeCode qui trouve des fichiers manquants dans une série
0
A
Répondre
3
Comptez simplement de 1 à 100 000 et vérifiez si le fichier existe.
foreach my $num (1 .. 100000) {
my $fname = "1to100000/$num.pdf";
print "missing $fname\n" unless -f $fname;
}
+0
Je pense que vous trouverez 100000 stats seront sensiblement plus lent que 100000 readdirs. – ysth
3
Utiliser readdir:
my @expect = map "$_.pdf", 1..100000;
my %notfound;
@notfound{@expect} =();
opendir my $dirh, "1to100000" or die "Couldn't open directory: $!";
while (my $fname = readdir($dirh)) {
delete $notfound{$fname};
}
for my $fname (@expect) {
if (exists $notfound{$fname}) {
print "missing $fname\n";
}
}
0
Voici un exemple de trouver les numéros manquants dans une plage (en utilisant Set :: IntSpan).
#!/usr/bin/perl
use strict;
use warnings;
use Set::IntSpan;
# the last sector on disk
my $end_sect = 71127179;
# The complete range of sectors on the disk
my $range = Set::IntSpan->new("0-$end_sect");
# The ranges of used sectors
my $used = Set::IntSpan->new(
'0-1048706,1048707-2097414,69078879-71127179');
# Calculates the remaining unused sectors
my $unused = $range->diff($used);
print $unused->run_list;
Questions connexes
- 1. TortoiseSVN - fichiers manquants dans le client
- 2. Renommer une série de fichiers
- 3. Fichiers manquants d'un clone git
- 4. Paquet de l'application iPhone Xcode fichiers manquants
- 5. R: Remplir des dates manquantes dans une série temporelle?
- 6. Comment gérer les fichiers manquants sur MVC
- 7. Réparer le numéro de code avec des chiffres manquants
- 8. Construction Ant qui trouve des applications et les parcourt
- 9. Trouver des enregistrements manquants
- 10. Où se trouve le danger d'obtenir des fichiers dans Silverlight?
- 11. TFS fichiers originaux manquants sur la machine
- 12. Fichiers de propriétés de package manquants dans war build
- 13. Trouver des emails manquants dans SQL Server
- 14. comment décrire cette série dans le code?
- 15. Rechercher des nombres manquants dans le tableau
- 16. Enregistrer le fichier qui se trouve dans le paquet source
- 17. Linker ne trouve pas les fichiers de classe dans le code Objective-C
- 18. Comptes manquants dans l'émulateur Android
- 19. Quoi appeler une méthode qui trouve ou crée des enregistrements dans db
- 20. Génération de fichiers de spécifications manquants pour RSpec
- 21. Comment puis-je supprimer les fichiers manquants avec des espaces dans svn?
- 22. Comment désérialiser des champs manquants à Nulls
- 23. Optimisation d'une requête MySQL qui trouve des données en double
- 24. projet XCode se plaint de fichiers manquants si un cadre lié contient des en-têtes privés
- 25. Fichiers manquants sur la branche après l'importation cvs2svn
- 26. Gestion des paquets ou des DLL manquants dans une application PyQt
- 27. Récupérer un référentiel SVN avec plusieurs revs/fichiers manquants
- 28. Ajouter des objets manquants pour créer une collection ordonnée
- 29. Git: supprimer des fichiers dans une branche, ce qui se passe quand une fusion a lieu
- 30. IIS6 ne trouve pas les fichiers .asp
Veuillez être plus clair. Quand vous dites "un répertoire appelé 1to100000 contient des pdfs nommés 1,2 ... 99999,100000", ce sont des fichiers PDF? Qu'est-ce qui définit la série? La série est-elle définie uniquement par le nom du fichier ou les fichiers PDF doivent-ils être analysés? De meilleures questions produisent de meilleures réponses ... – dawg
Entiers. La série est un ensemble de fichiers pdf. Les noms de répertoires ne sont pas vraiment pertinents. Il y a un dossier contenant les fichiers x à x + 10000 où ces contraintes sont facilement définies. Si je veux savoir quels sont les fichiers manquants dans cette série continue, comment faire? – Jake