initial
This commit is contained in:
42
scripts/xt
Executable file
42
scripts/xt
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user