Eu tenho um arquivo de log com carimbos de data e hora. Ocasionalmente, existem vários registros de data e hora em uma linha. Agora eu gostaria de remover todos os registros de data e hora de uma linha, mas manter o primeiro.
Eu posso fazer, s/pattern//2
mas isso apenas remove a segunda ocorrência e sed
não permite algo parecido s/pattern//2-
.
Alguma sugestão?
Respostas:
Com o GNU
sed
:O
2
especifica que o segundo padrão e todo o restog
devem ser removidos. Então, isso manterá o primeiro.fonte
Isso deve funcionar (substitua _ por outra coisa caso entre em conflito com seus logs):
fonte
\n
.ou sem o sed goto:
As soluções genéricas para remover da enésima (terceira posição), por exemplo, são:
fonte
Uma pequena variação na resposta de @ jillagre (modificada para robustez) pode parecer com:
... mas em alguns casos
sed
pode ser necessário substituir on
lado direito da primeiras///
instrução de\n
ubstitution por um caractere literal de linha de ew.fonte