J'ai besoin de script pour copier sur une base de cron une liste de fichiers. Les fichiers sélectionnés sur le modèle name/datetime et le nom de la destination du fichier doivent être ajoutés à des données telles que ddmmyyy. Ce n'est pas un problème de copier des fichiers ou un répertoire, mais un problème pour changer le nom de chaque fichier en fonction de ses données. Peut exister une solution open source? Merci.Linux bash script pour copier des fichiers
2
A
Répondre
4
Vous n'avez pas fourni suffisamment d'informations pour que je puisse vous donner un vrai code de travail; mais vous pouvez faire quelque chose comme ceci:
file=dated_log.log
ddmmyyyy=$(read -r < "$file" ; echo "${REPLY:1:8}")
cp "$file" "$file.$ddmmyyyy"
ci-dessus copiera dated_log.log
-data_log.log.30102011
, en supposant que la première ligne de dated_log.log
commence par 30102011
.
Le Bash Reference Manual devrait vous aider à faire les réglages ci-dessus pour convenir à vos besoins.
Questions connexes
- 1. script Bash pour copier des fichiers numérotés dans l'ordre inverse
- 2. script bash pour copier des fichiers entre les répertoires
- 3. Script - terminal linux bash
- 4. Shell script pour copier des fichiers
- 5. Facile Linux Bash Script
- 6. Bash: copier et renommer récursivement des fichiers
- 7. comment copier des fichiers spécifiques dans Linux?
- 8. Faire linux tree bash script Voir les fichiers
- 9. Script Bash pour xls2csv
- 10. scripts Bash pour archiver les fichiers, puis copier de nouveaux
- 11. script linux pour la boucle
- 12. Script Bash pour copier le répertoire dans plusieurs autres répertoires
- 13. script bash pour la suspension des dates sur les fichiers
- 14. Comment copier des fichiers sur un ordinateur distant en utilisant le script Bash? Je
- 15. BASH copier tous les fichiers sauf un
- 16. script pour taper et copier des répertoires
- 17. Bash (Linux) Shell Script pour compresser les fichiers de plus de 30 jours
- 18. Script à suppression automatique pour Linux Bash et Windows Batch
- 19. Script BASH pour compiler plusieurs fichiers C++ - OpenCV
- 20. Bash: trouver et copier
- 21. Make script bash exécuté sur Linux et Solaris
- 22. Linux copier des fichiers à partir du programme Java
- 23. Script Bash pour trouver des fichiers spécifiques dans une hiérarchie de fichiers
- 24. script Bash pour trouver des fichiers dans une liste, copiez-dest, imprimer des fichiers non trouvé
- 25. msbuild copier des fichiers
- 26. Script pour l'écran bash
- 27. script bash pour traduire XML
- 28. Bash-script d'impression d'un pdf à un pdf sous Linux
- 29. ne peut pas exécuter script bash dans linux redhat
- 30. Copie de fichiers Bash avec des variables
Au lieu de 'ddmmyyyy = $ (lire -r <" $ file "; echo" $ {REPLY: 1: 8} ")' vous pourriez 'lire -r -n 8 ddmmyyyy <" $ file "'. –
@gniourf_gniourf: Oui, bon point. Mais je pense que ma réponse est meilleure, car je doute que le format de fichier de l'OP * réellement * commence par les huit bons caractères, et je pense que le code que j'ai posté est susceptible d'être plus facilement modifié le PO a besoin. (Supposons que l'OP ait réellement besoin des caractères 30 à 37. Comment ajuster 'read -r -n 8 ddmmyyy' pour les récupérer?) – ruakh
pour les caractères 30 à 37:' read -r -n 37 ddmmyyyy <"$ file" ; ddmmyyyy = $ {ddmmyyyy: 30} 'fera l'affaire. Ou même directement: 'read -r ddmmyyyy <" $ file "; ddmmyyyy = $ {ddmmyyyy: 30: 8} '. Ou 'read -r ddmmyyyy; printf -v ddmmyyyy "% .8s" "$ {ddmmyyyy: 30}" 'ou ... le but est juste d'éviter un sous-shell (je trouve personnellement' $ (... echo) 'de style plutôt mauvais.':) '. –