Usando sed
para modificar o arquivo no local:
sed -i '/^\(report\|-t\(h\|o\)\)/!d' your_file
Isso instrui sed
a excluir todas as linhas que não correspondem ao padrão. O padrão em si é ^
(início da linha), seguido por um report
ou -t
seguido por um h
ou o
.
Observe que essa não é uma modificação real no local: sed
cria uma cópia de backup temporária e sobrescreve o arquivo original.
Se você deseja sed
manter uma cópia de backup do arquivo original (o que pode ser uma boa idéia se o arquivo contiver dados críticos), ofereça ao -i
switch uma extensão para criar um arquivo de backup:
sed -i'.bak' -e '/^\(report\|-t\(h\|o\)\)/!d' your_file
irá 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 nem se ofenda com isso, mas notei que você tem muitas perguntas semelhantes relacionadas ao regex / processamento de texto. Eu aconselho você a começar a aprender sed
, awk
e grep
em seu próprio país para ajudar a acelerar a sua produtividade. Novamente, não me interpretem mal, estou muito feliz em ajudar (como a maioria das pessoas por aqui); acho que você se beneficia enormemente ao escolher essas ferramentas para o seu uso diário.
Apenas para provar como as pessoas são úteis por aqui, considere a sugestão de @ slm nos comentários abaixo e sinta-se à vontade para visitar esta sala de bate-papo a qualquer momento para perguntas.