#!/bin/bash ## extrait d'un fichier binaire 'file' a partir du 'first' octet (compris, commence a compter a 1) ## en comptant 'count' octets usage() { echo "Usage: $0 first count file (chemin du fichier a traiter)" echo " ou: $0 first count (avec l'utilisation de l'entrée standard)" echo " Extrait les octets d'un fichier binaire 'file' ( ou de l'entrée standard) " echo " a partir du 'first' octet (compris, commence a compter a 1)" echo " en comptant 'count' octets" echo " example : ./xt 4097 $((16#b0)) stream1.mp3 > stream.entete2.bin" exit 1 } # Vérifie que 2 ou 3 arguments ont été passés if [ "$#" -ne 2 ] && [ "$#" -ne 3 ]; then usage exit 1 fi # Par défaut, utilise l'entrée standard comme entrée input="/dev/stdin" # Récupère les arguments passés en paramètre first="$1" count="$2" if [ "$#" -eq 3 ]; then input="$3" fi if [ "$count" = "-" ] ; then # Lance tail ans head car on veut jusq'ua bout du fichier cat "$input"| tail -c+$first else # Lance tail et head pour récupérer les octest demandés cat "$input"| tail -c+$first |head -c$count fi