Eu tenho o próximo fragmento da saída de um log:
Server Server: Server
Date and Time: June 04 2018 14:10:00
--
Product Version User Host IP Duration
Software1 11.0 user user *.**.***.*** 10:08
Software2 11.0 user user *.**.***.*** 10:05
===================================================================================
Eu quero com o comando cut apenas filtrar a saída como:
Product Version Host IP Duration
Software1 11.0 user *.**.***.*** 10:08
Software2 11.0 user *.**.***.*** 10:05
Além disso, quero saber se é possível aplicar o mesmo filtro muitas vezes, pois no primeiro exemplo acima, ele se repete em todo o arquivo.
Você realmente não pode usar
cut
neste caso, pois as colunas dos dados não estão claramente definidas. Ocut
utilitário funciona cortando em números exatos, por exemplo, exatamente em 3 espaços ou tabulações ou qualquer delimitador que você tenha. Nesse caso, você precisará usar oawk
que divide suas linhas de entrada em qualquer número de espaços em branco consecutivos (por padrão).O
awk
programa pula qualquer linha que comece com==
e qualquer linha antes da 5ª linha. Para todas as outras linhas, imprime uma seleção dos campos (não o 3º,User
).O
column -t
no final formata o resultado em uma bela tabela.Usando awk:
Usando SED:
Usando grep:
Encontrei a solução mais simples para isso:
Isso permite imprimir apenas minhas colunas preferidas
Eu não percebi o importante uso de
awk