LINUX.ORG.RU
ФорумTalks

desfx - помогите усовершенствовать


0

0

люди! помогите усовершенствовать скрипт:
----------------------------------------
#!/bin/sh
l=`du -b $1 |awk 'BEGIN {RS=""} {FS=""} { print $1 }'`
for i in `seq 0 $l`;do
    k=`xxd -l3 -ps -s$i $1`
    case "$k" in
    "1f8b08" ) dd if=$1 of=$1.out.gz  bs=1 skip=$i && exit 0 ;;
    "425a68" ) dd if=$1 of=$1.out.bz2 bs=1 skip=$i && exit 0 ;;
    "1f9d90" ) dd if=$1 of=$1.out.Z   bs=1 skip=$i && exit 0 ;;
    "526172" ) dd if=$1 of=$1.out.rar bs=1 skip=$i && exit 0 ;;
    "504b03" ) dd if=$1 of=$1.out.zip bs=1 skip=$i && exit 0 ;;
    esac
done
----------------------------------------
желательно применять только :
1)ничего кроме shell,sed,awk+core_utils
2)C
3)C++
зы
perl,python,rexx - крайне нежелательны
anonymous

Сегодня в Talks только про беременных женщин и разговаривают. Не в тему, однако.

Оффтопик: не понял, что ты вообще хочешь сделать этим скриптом.

anonymous
()
Ответ на: комментарий от anonymous

поиск "заголовка" архива происходит медленнее, чем в hex-редакторах;
на ~100Mb файлах вываливается(типа памяти мало)

anonymous
()
Ответ на: комментарий от anonymous

>Есть такая командочка file
а она мне напишет, по какому адресу находиться этот заголовок ?
Чего-то нет надежды:
http://seth.positivism.org/man.cgi/file:
...
EXAMPLES
$ file(1,n) file.c file(1,n) /dev/{wd0a,hda}
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386, version(1,3,5) 1 (SYSV),
dynamically linked (uses shared libs), stripped
/dev/wd0a: block special (0/0)
/dev/hda: block special (3/0)
$ file(1,n) -s /dev/wd0{b,d}
/dev/wd0b: data
/dev/wd0d: x86 boot sector
$ file(1,n) -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}
/dev/hda: x86 boot sector
/dev/hda1: Linux/i386 ext2 filesystem
/dev/hda2: x86 boot sector
/dev/hda3: x86 boot sector, extended partition table
/dev/hda4: Linux/i386 ext2 filesystem
/dev/hda5: Linux/i386 swap file(1,n)
/dev/hda6: Linux/i386 swap file(1,n)
/dev/hda7: Linux/i386 swap file(1,n)
/dev/hda8: Linux/i386 swap file(1,n)
/dev/hda9: empty
/dev/hda10: empty

$ file(1,n) -i file.c file(1,n) /dev/{wd0a,hda}
file.c: text/x-c
file: application/x-executable, dynamically linked (uses shared libs),
not stripped
/dev/hda: application/x-not-regular-file
/dev/wd0a: application/x-not-regular-file
...

anonymous
()
Ответ на: комментарий от ananas

>сразу дается mime-type
это дело десятое,
надо быстро найти положение заголовка
- из гуугла и wiki не ясно
(щас нахожусь под виндой, в моей поставке mingw32 ни file ни доки по нему нет)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.