Como remover o arquivo de log com grep para remover várias informações dispensáveis?

Como remover o arquivo de log com grep para remover várias informações dispensáveis?

Meu arquivo de log tem o seguinte formato:

Dec 26 13:11:48 192.168.1.1 kernel: ACCEPT IN=br0 OUT=vlan1 SRC=192.168.1.2 DST=74.125.43.147 LEN=44 TOS=0x00 PREC=0x00 TTL=63 ID=9312 DF PROTO=TCP SPT=11733 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 OPT (020405B4) 

Agora estou tentando remover algumas informações dispensáveis ​​para tornar a saída mais legível e bem organizada e colocá-la em um novo arquivo.

O resultado deve ficar assim e conter apenas as seguintes informações:

Dec 26 13:11:48 192.168.1.2 74.125.43.147 TCP SPT=11733 DPT=80

Como fazer isso?

Responder1

awk '{sub(/PROTO=/, "", $17); print $1,$2,$3,$4,$17,$18,$19}' < logfile.log > processed-logfile.log

Responder2

Tente awk selecionar as colunas desejadas com instruções de impressão para colocá-las na ordem desejada.

Por exemplo, se você quiser o PID (ID do processo) do processo "foo" em seu sistema, poderá executar

ps -ef | grep foo | grep -v grep | awk '{ print $2 ; }'

informação relacionada