Procurando um arquivo e excluindo linhas com uma string especificada

3

Eu tenho um arquivo de log grande que contém várias linhas da mesma entrada, vamos chamá-lo de "info-repetição". Como exemplo, aqui está a aparência de uma parte do log:

[Timestamp] repeat-info
[Timestamp] repeat-info
[Timestamp] Log information 1
[Timestamp] Log information 2
[Timestamp] repeat-info
[Timestamp] Log information 3
[Timestamp] repeat-info

Existe um comando que pode gerar as informações no arquivo de log e excluir as informações repetidas? Torna-se um incômodo se eu tiver que usar more file.log e filtrar todas as informações repetitivas para encontrar o que eu quero ver.

Estou lendo as man pages de sed e awk , como vi aquelas que aparecem nas pesquisas da minha pergunta, mas não encontrei nada conclusivo que faça o que eu preciso.

Eu estava pesquisando as questões antigas e encontrei esta questão que está relacionada com o meu.

Eu estava procurando uma maneira de fazer isso com um único comando ou dois canalizados, sem precisar criar um script.

Qualquer ajuda é apreciada!

    
por SirCobalt 10.05.2012 / 17:11

1 resposta

7

Existem algumas maneiras de fazer isso. Melhor seria grep :

grep -v 'repeat-info' file.log

Outras maneiras:

sed '/repeat-info/d' file.log
sed -n '/repeat-info/!p' file.log

awk '!/repeat-info/' file.log
    
por 10.05.2012 / 17:54