Script Bash - Lire Un Fichier Binaire
Je suis nouveau dans les scripts, mais j'ai beaucoup d'expérience de la programmation dans des langages tels que C# et Java.
J'ai un fichier qui contient des données binaires. Je veux écrire un script Bash qui lit l'année, le mois et le jour contenues dans ce fichier afin que je puisse trier les associés MOD fichiers dans des dossiers en fonction de la date à laquelle ils ont été enregistrés. Je vais avoir du mal à trouver un moyen de lire des données binaires et l'analyser dans un script bash. Est-il possible de faire cela?
- par curiosité, pourquoi bash et pas perl/python?
- Aucune raison vraiment. J'ai déjà écrit un fichier BASH pour renommer les fichiers et les déplacer. Ensuite, j'ai pensé qu'il serait mieux de les trier par quand les fichiers ont été enregistrés plutôt que par quand j'ai copié l'appareil photo hors tension.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser od (plus de la tête et awk pour un peu de post-traitement) pour cela. Pour obtenir l'année:
Pour le mois:
Et le jour:
Je vous conseille d'utiliser python pour cela.
Toutefois, si vous insistez sur le coup, je voudrais essayer en utilisant soit
sed
en mode binaire (jamais essayé) ou à l'aide dedd
pour l'extraction spécifique octets, puis de les convertir.Si ce n'est pas trop hardcore pour vous, je vous suggérons de compiler à la suite de C-programme de langue:
Ensuite ce faire:
Vous avez maintenant un outil pratique appelée "readint" avec la syntaxe suivante:
vous pouvez chercher sur le net pour les modules d'interpréter MOI fichiers (soit Perl ou Python). Sinon, je ne pense pas vraiment que vous pouvez obtenir la date comme ça dans le fichier binaire parce que si vous regardez à l'intérieur, c'est vraiment des "ordures" depuis sa binaire. Bien que vous pouvez également donner les cordes commande de l'essayer pour voir si il y a lisible chaînes qui correspondent à la date