extract.sh: Script baseado no extract da phrack
Publicado por Marcos Paulo Ferreira (última atualização em 09/10/2010)
[ Hits: 5.511 ]
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
Papel de parede - Mudança automática no Ubuntu/Debian
Instalar o screenFetch em qualquer distribuição
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (6)
PC não liga no filtro de linha (5)