extract.sh: Script baseado no extract da phrack
Publicado por Marcos Paulo Ferreira (última atualização em 09/10/2010)
[ Hits: 5.761 ]
Homepage: http://daemoniolabs.wordpress.com
Download 1286311278.extract.sh (versão 2)
Para quem lia ou lê a phrack magazine já deve ter usado o programa extract lançado na revista
na edição #50 [1]. Esse programa é de grande utilidade, pois com ele podemos extrair conteúdos específicos
de um arquivo texto e salvá-los em um arquivo qualquer.
O conteúdo mencionado deve estar entre as tags <++> e <-->. O nome do arquivo de saída deve estar
após a tag <++> (obs: Pode-se utilizar diretórios também. Se eles não existirem, então serão criados.)
Confira um exemplo:
$ cat arquivo.txt
aaaaa
bbbbb
<++> saida.txt
1111
2222
3333
<-->
cccc
dddd
Utilizando o script:
$ ./extract.sh arquivo.txt
- Extracting saida.txt
Depois disso, o arquivo saida.txt será criado e seu conteúdo será:
$ cat saida.txt
111
222
333
[1] http://www.phrack.com/issues.html?issue=50&id=16
Espero que gostem.
t+
Versão 2 - Enviado por Marcos Paulo Ferreira em 03/10/2010
Changelog: É... parece que a regex para casar com as tags de abertura e fechamento não estava funcionando.
Não sei por quê, mas aqui em casa o script rodou sem problemas.
Bem, troquei a tag '<[+][+]>' para \<[+][+]\>, pois as versões recentes do bash não precisam das aspas para delimitar a regexp (e se você usar as aspas, o resultado será diferente :S ).
Outra coisa que mudei foi a robustez do script. Agora ele verifica alguns errinhos básicos que o script anterior não verificava.
Opa... fuçando pela net encontrei o Meleu Extracting Utility que faz a mesma coisa que esse script aqui.
Para falar a verdade, eu nem peguei o código do meleu para ler a fundo, mas posso garantir que o script tá bem diferente do meu e com muito mais esquemas interessantes :|
Página pessoal do meleu:
http://www.meleuzord.hpg.ig.com.br
Bem, acho que é isso!
t+
Download 1286311278.extract.sh
#!/bin/bash
#
# Autor: Marcos Paulo Ferreira (Daemonio)
# Contato: undefinido at gmail com
#
# =[ Script : extract.sh ]=
# Dom Ago 22 13:43:09 BRT 2010 Inicio
# Seg Ago 23 00:34:38 BRT 2010 Fim da primeira versao
# Seg Ago 23 14:21:32 BRT 2010 Inclusao do read -r no while
#
# =[ Descricao ]=
# Extrai o conteudo delimitado entre as tags <++> e <-->
# de um arquivo texto. O nome do arquivo a ser salvo
# deve vir depois da tag <++>.
# Esse script foi baseado no extract.c da phrack #50.
#
# =[ Uso ]=
# $ ./extract.sh arquivo.txt
#
# =[ Exemplo ]=
# $ cat arquivo.txt
# <++> saida.txt
# 111
# 222
# 333
# <-->
# $ ./extract.sh arquivo.txt
# - Extracting saida.txt
# $ cat saida.txt
# 111
# 222
# 333
#
extract() {
while read -r LINE
do
# Procura pelo padrao <++> no inicio da linha
if [[ $LINE =~ '^<[+][+]>' ]]
then
# Extrai o nome do arquivo ( tudo apos o <++> )
FILENAME=${LINE#* }
# Precisa criar diretorios?
if [[ $FILENAME =~ '/' ]]
then
DIRNAME=${FILENAME%/*}
mkdir -p $DIRNAME
fi
# Se arquivo existe, entao o deleta.
[ -e "$FILENAME" ] && rm -f "$FILENAME" 2> /dev/null
# Confere se e' possivel criar arquivo
if ! touch $FILENAME 2> /dev/null
then
echo "Could not extract $FILENAME"
exit 1
fi
echo "- Extracting $FILENAME"
# Gravar no arquivo ate encontrar <-->
else if ! [[ $LINE =~ '^<-->' ]]
then
echo -E "$LINE" >> $FILENAME
fi
fi
done
}
[ -z "$1" ] && echo "Usage: $0 <inputfile>" && exit 1
sed -n '/^<++>/,/^<-->/p' "$1" | extract
Instalação do Ubuntu com Criptografia Total
Download automatizado do instalador do AVG Free
Backup Simples de tabela MYSQL
Monitorar capacidade das partições
Efetua uma busca na rede por IPs(hosts) ativos
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









