Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Martin Šácha 21 Února 2013, 20:12:02
-
Ahoj,
necht program generuje vystup na stdout v nasledujicim tvaru:
...
Raw result:
<binarni blob>
Parsed result:
...
Me zajima jenom ten binarni blob *nezname delky (radove desitky B) a muze obsahovat cokoliv (konce radku, 0x00, ...).
Zatim mam takovyhle "hnus" (orez shora a zdola a odstaneni popisku)
cat ./dump | grep -A 100 -B 0 --binary-files=text -e "Raw result:" | grep -A 0 -B 100 --binary-files=text -e "Parsed result:" | grep -v --binary-files=text -e "Raw result:" | grep -v --binary-files=text -e "Parsed result:"
Problem je, ze neumim odstranit posledni konec radku (ktery tam necha grep), sed mi zatim vzdycky vynadal ze s binarnim souborem se nekamaradi...
Dik za pomoc :)
-
Pomocí grepu (offset) a dd např.
start=$(($(grep -abo -m1 "Raw result:" file | cut -d: -f1) + 12))
count=$(($(grep -abo -m1 "Parsed result:" file | cut -d: -f1) - $start - 1))
dd if=file bs=1 skip=$start count=$count
Ale lepší by snad bylo použít nějaký binary sed (bbe) nebo programovací jazyk, ne?
-
Jo, to vypada ze funguje, diky:)
Jasne ze bych mohl neco spachat treba v C, ale kdo se s tim ma porad kompilovat...