Estoy tratando de encontrar un comando de shell de Android que pueda leer un archivo pero que tenga el poder de omitir, por ejemplo, 512 bytes cada 1024 bytes.
¿Existe tal comando y está disponible para dispositivos Android?
Miré la documentación de dd pero no pude averiguar si es posible usar dd para ese propósito. Puede hacer que dd omita bytes al comienzo del archivo, puede hacer que lea X bytes de un archivo, pero no veo cómo obtener la función que describí.
EDITAR:
Para mi propósito, el comando/secuencia de comandos debe salir a la salida estándar, y el procesamiento leerá la salida como una secuencia, por lo que no será algo como "cat un archivo, procesamiento, cat un archivo". Es como "si bien es cierto; haz un archivo; listo | procesamiento".
La lista de comandos disponibles está aquí: http://www.busybox.net/downloads/BusyBox.html
Debería intentar usar este script bash que escribí para usted (requiere busybox en su Android):
coloque el script en un archivo llamado script.bash (cambie con su propia ruta):
#!/system/xbin/bash
# sputnick 20120928 http://android.stackexchange.com/posts/30069
binfile=<THE PATH OF YOUR BIN FILE>
bytes=$(wc -c < $binfile)
c=0 count=0
while ((count < bytes - (1024+512) )); do
dd 2>/dev/null if=$binfile bs=512 count=2 skip=$c
printf '\n\n'
((count += 1024+512 ))
((c+=3))
done
Ahora, en una terminal de tu computadora (esto es para linux, adáptalo si usas Windows)
adb push script.bash /mnt/sdcard/script.bash
adb shell
bash
chmod +x /mnt/sdcard/script.bash
/mnt/sdcard/script.bash
editar
Esto es lo que hace el script in-fine :
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=0
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=3
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=6
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=9
(...)
Rui Marqués
gilles quenot