Excluindo uma linha inteira em um arquivo que contém uma certa string

0

Estou interessado em descobrir uma maneira de excluir uma linha inteira em um arquivo de texto que contenha uma string específica. Isso será para um arquivo de texto que funciona como um catálogo telefônico contendo nomes, endereços, números de telefone, etc.

[Ex]

John Smith, 123 Fake St, 555-555-555

Eu quero saber como posso pesquisar um nome específico e remover toda a linha que o contém. Assim, para o exemplo acima, eu procuraria por "John" ou "Smith" ou "John Smith" e removeria toda a linha que contém essas palavras.

Eu usaria grep ou sed para isso? Eu quero fazer uma alteração permanente no arquivo

    
por Justin 13.12.2014 / 19:21

1 resposta

1

Você pode usar o comando d de sed .

Para remover todas as linhas que contenham a palavra John, você faria

sed --in-place /John/d ./file

No caso de vários critérios, use o comando -e

sed --in-place -e '/John/d; /John Smith/d' ./file
    
por Registered User 13.12.2014 / 19:38