
		drizze
		
		(usa Linux Mint)
		
		Enviado em 12/01/2017 - 22:46h 
		Fiz um pequeno script para te ajudar:
 
#!/bin/bash
filename=$1
findpattern=$2
if [ -z "$filename" ]
then
    echo "Falta parâmetro nome do arquivo"
    exit 1
fi
if [ ! -z "$findpattern" ];
then
    echo "Procurando por ${findpattern} em ${filename}"
    findline="$(cat ${filename} | grep ${findpattern} -n | head -n 1 | cut -d : -f 1)"
    if [ ! -z "$findline" ];
    then
        lineoffset=$((findline+4));
        sed "${findline},${lineoffset}d" $filename
    else
        echo "${findpattern} não encontrado"
    fi
else
    echo "Falta parâmetro findpattern"
    exit 1
fi
 
Explicação do script acima:
Vamos supor que você pegou o script e salvou como 
deleta.sh.
O script exige 2 argumentos, o primeiro o 
nome do arquivo e o segundo o 
nome do usuário. Exemplo:
./deleta.sh backup celiorj94 
Ele pegará o número da linha da primeira ocorrência, somará pela lineoffset (ver linha 18, variável lineoffset):
findline="$(cat ${filename} | grep ${findpattern} -n | head -n 1 | cut -d : -f 1)" 
Seto o "lineoffset" (última linha a deletar):
lineoffset=$((findline+4)); 
E com o comando 
sed, deleto as linhas específicas:
sed "${findline},${lineoffset}d" $filename 
Será retornado todo o documento, com exceção das linhas do usuário, partindo de (ver linha 18, variável lineoffset):
## Play backup celiojr94 
até
sleep 1 
A ideia é substituir o arquivo antigo (
ANTES DE TESTAR, FAÇA BACKUP):
./deleta.sh backup celiojr94 > backup 
É um pequeno script para estudos. Fique a vontade para aprimorá-lo ;)