Lire des caractères dans un fichier texte à l'aide de bash
Personne ne sait comment je peux lire les deux premiers caractères à partir d'un fichier, à l'aide d'un script bash. Le fichier en question est en fait un pilote e/S, il n'a pas de caractères de nouvelle ligne, et est en effet infiniment longue.
C'est une question de programmation, mais je pense que vous pourriez obtenir une réponse plus rapide sur Serverfault.com. Ces gars-là savent que leur script.
OriginalL'auteur Simon Hodgson | 2009-06-10
Vous devez vous connecter pour publier un commentaire.
La
read
intégré prend en charge la-n
paramètre:peut ne pas fonctionner comme vous le souhaitez si l'un des deux premiers octets sont de $IFS, dd va faire
Vrai, mais il n'y a pas d'autres BASH façon de le faire, pour autant que je sais.
De toute façon, tant que vous utilisez un nom unique, il devrait y avoir aucun problème, comme $IFS pénètre dans l'image lorsque vous divisez la ligne en plus d'un nom (ou une variable).
OriginalL'auteur Vinko Vrsalovic
Je pense
dd if=your_file ibs=2 count=1
fera l'affaireLa regarder avec strace montre que c'est en fait un deux octets lus à partir du fichier.
Voici un exemple de lecture à partir de /dev/zero, et a joué en hd pour l'affichage du zéro :
dd if=/dev/whatever bs=2 count=1 2>/dev/null
OriginalL'auteur shodanex
OriginalL'auteur ghostdog74
G'day,
Pourquoi ne pas utiliser od pour obtenir la tranche que vous avez besoin?
Edit: Vous ne pouvez pas utiliser la tête de ce que la tête de commande imprime sur la sortie standard stdout. Si les deux premiers caractères ne sont pas imprimables, vous ne voyez rien.
Do commande a plusieurs options de format de l'octet que vous voulez.
Ces soultions serait de travailler sur un grand nombre de systèmes, mais je suis en utilisant un système embarqué qui n'a pas de tête ou od installé.
Vous n'avez pas la tête, mais toutes les options de lecture ? Mon incorporé env fait le contraire 🙂 Et j'ai souvent de mettre le dd dans quel que système embarqué-je construire
OriginalL'auteur Rob Wells