J'ai une liste d'un fichier dans un répertoire1 et j'ai besoin de copier le seul fichier de hachage existant dans un autre répertoire2. Comment puis-je le faire en utilisant un script? pour tout autre fichier avec un nom normal, je peux le faire, mais qu'en est-il du hachage? avons-nous besoin d'analyser pour ce faire? le nom du fichier est sous cette forme e6a0feaeh74b94f91419795647be61801b06ecec912087c14907da77f90d6e1a
Donc, si les autres fichiers n'ont pas de chiffres, c'est-à-dire 0123456789, dans le nom comme vous l'avez dit, alors quelque chose comme ça ferait probablement ce que vous voulez
#!/bin/bash
pattern="[0-9]"
for fn in ./* ; do
if [[ $fn =~ $pattern ]]; then
cp $fn ./directory2/
fi
done
Remplacez simplement/directory2/par le répertoire de destination correct dans lequel vous souhaitez copier le fichier.
NB: Il s'agit d'un script très rudimentaire, il nécessite également que vous soyez dans le répertoire lorsque vous l'exécutez. Cela pourrait faire un peu de polissage, alors modifiez-le selon vos besoins.
Je suppose que vos noms de fichiers ont 64 caractères (∈ lettres ou chiffres minuscules).
En utilisant Perl, vous pouvez exécuter quelque chose comme
Perl -e 'for (grep(/^[a-z0-9]{64}$/,<*>)){`mv $_ directory2/`}'
<*>
Développez pour tous vos fichiers,grep(/^[a-z0-9]{64}$/, ...)
sélectionne les 64 longs