initial
This commit is contained in:
23
scripts/readme.md
Normal file
23
scripts/readme.md
Normal 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
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