Pesquise e substitua a linha completa em arquivos recursivos

Pesquise e substitua a linha completa em arquivos recursivos

Estou a usar:

grep -n -H -o -R -e textword .

Liste todos os arquivos recursivamente no diretório '.' com a string 'textword' e mostra o arquivo, a linha e apenas a parte correspondente.

Preciso remover as linhas que correspondem ao texto usando um comando do Linux.

Responder1

find . -type f -exec sed -r -i "/textword/d" {} +

Lembre-se de que o texto de pesquisa é interpretado como um regexp por sed(com a -ropção), portanto pode ser necessário escapar.

Use sed -i.backuppara fazer backup de arquivos originais como <filename>.backup.

Responder2

Com GNU finde sedvocê poderia:

find . -type f -print0 | xargs -0 sed -i '/^FIND$/d'

informação relacionada