PPaste!

file extractor

Home - All the pastes - Authored by Thooms

Raw version

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

echo "Extracting files from $1 ..."
count=0
hachoir-subfile $1 2>&1 |\
    grep 'File at' | grep 'size' |\
    while read entry; do
        offset=$(echo $entry | sed -re 's/.*at ([[:digit:]]+) .*/\1/')
        size=$(echo $entry | sed -re 's/.*size=([[:digit:]]+) .*/\1/')
        ext=$(echo $entry | cut -d: -f2 | cut -d' ' -f2 | tr '[[:upper:]]' '[[:lower:]]')
        name="$(echo ${1}_f${count}.${ext})"

        echo "> $name"
        dd if="$1" of="$name" bs=1 skip=${offset} count=${size}

        count=$(( $count + 1 ))
    done

echo 'Done!'