Eu tenho a próxima saída:
Date Time: June 22 12:40:00
Product User Host IP
Software User User *.***.***.***
Software1 User User *.***.***.***
Tentei algumas funções com sed
e awk
, mas não está funcionando; Eu quero que o texto fique da seguinte maneira:
Date Time: June 22 12:40:00
Product User Host
Software User User
Software1 User User
Eu tenho o seguinte comando:
$ cat Mathematica_06-* | \
grep -w -A 4 -B 5 "AER8\|User\|User1\|User2\|User3\|User4\|User5\|User6\|User7\|User7\|User8\|User9\|User10\|User11\|User11\|User12\|User13\|User14\|User15\|User16\|User17\|User18\|User19" | \
awk '{print $1,$3,$4,$5,$7}' | \
egrep -v
> Output.log
Tentei adicionar no final, egrep -v "|IP"
mas se eu colocar a linha nesse comando, obtive a próxima saída:
Date Time: June 22 12:40:00
Softare User User
Software User User
Existe alguma outra maneira de excluir as partes "IP" e "*" sem afetar o restante da linha?
Usando sed
Isso também deve funcionar:
Aqui está uma maneira com
awk
. ANR
variável representa o número do registro; apenas imprima-o se for o primeiro.awk
conta os campos de um, então você está dizendo que deseja apenas os três primeiros depois:Usando
sed
para excluir a última palavra e quaisquer espaços ou tabulações antes dela nas linhas 5 em diante:O
5,$
endereçamento de cada linha da linha 5 em diante, e a substituição que atua nessas linhas removerá qualquer número de espaços ou tabulações seguidas de algo que seja composto de não espaços e não tabulações no final da linha.