file=$1 outfile=${1%.*}.dump startpattern="ff d8 ff d0" endpattern="41 50 45 54 41 47 45 58 d0" xxd -g0 -c1 -ps ${file} | tr '\n' ' ' > ${file}.hex start=$((($(grep -bo "${startpattern}" ${file}.hex | head -1 | awk -F: '{print $1}')-1)/2)) len=$((($(grep -bo "${endpattern}" ${file}.hex | head -1 | awk -F: '{print $1}')-1)/2-${start})) dd ibs=1 count=${len} skip=${start} if=${file} of=${outfile}