Usando sed
para modificar o arquivo:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Isso instrui sed
a excluir todas as linhas que não correspondam ao padrão. O próprio padrão é ^
(início da linha), seguido por report
ou -t
seguido por h
ou o
.
Você deve observar que isso não é uma modificação real no local: sed
cria uma cópia de backup temporária e sobrescreve o arquivo original com ela.
Se você quiser que sed
mantenha uma cópia de backup do arquivo original (o que pode ser uma boa ideia se o arquivo contiver dados críticos), forneça a extensão -i
para criar um arquivo de backup:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
modificará your_file
e criará um backup do original chamado your_file.bak
.
Uma nota lateral
Por favor, não interprete mal minhas intenções ou se ofenda com isso, mas notei que você tem muitas questões relacionadas a processamento de texto / regex similares. Eu aconselho você a começar a aprender sed
, awk
e grep
por conta própria para ajudar a acelerar sua produtividade. Mais uma vez, não me interpretem mal, estou muito feliz em ajudar (como a maioria das pessoas por aqui); é só que eu acho que você se beneficiará enormemente de pegar essas ferramentas para o seu uso diário.
Apenas para provar o quão útil as pessoas estão por aqui, considere a sugestão do @ slm nos comentários abaixo e sinta-se à vontade para baixar esta sala de chat a qualquer momento para perguntas.