This commit is contained in:
Mac Call
2023-03-04 14:12:26 +01:00
commit e53fb1b54f
12 changed files with 616 additions and 0 deletions

23
scripts/readme.md Normal file
View File

@@ -0,0 +1,23 @@
# petits scripts shell utilitaires
## xt pour strippe un "extraire" un bloc d'octets d'un binaire
Permet d'enlever le générique roland radio et les entetes mp3 ajouté a chaque stream au début
- premier parametre : la position du premier octet a récupérer
- deuxième parametre : le nombre d'octets a récupérer ( - pour aller jusqu'a la fin)
Dans l'exemple ci-dessous on utilise l'astuce `$((16#valeur_hexa))` pour convertir une valeur hexa en decimal quand la commande attend un decimal
```
./xt $((16#702a0)) 200000000 stream_recorded.mp3 > stream_recorded.stripped.mp3
./xt $((16#702a0)) - stream_recorded.mp3 > stream_recorded.stripped.mp3
```
## astuce bash : conversion d'une chaine de date en nanosecondes
```
date -d "2023-02-27T16:30:06.386" +%s%N
```

42
scripts/xt Executable file
View 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