Как очистить файл журнала с помощью grep, чтобы удалить различную ненужную информацию?

Как очистить файл журнала с помощью grep, чтобы удалить различную ненужную информацию?

Мой лог-файл имеет следующий формат:

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) 

Теперь я пытаюсь удалить некоторую ненужную информацию, чтобы сделать вывод более читабельным и хорошо организованным, и поместить его в новый файл.

Результат должен выглядеть следующим образом и содержать только следующую информацию:

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

Как это сделать?

решение1

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

решение2

Попробуйте использовать awk для выбора нужных столбцов с помощью операторов печати, чтобы расположить их в нужном порядке.

Например, если вам нужен PID (идентификатор процесса) процесса «foo» в вашей системе, вы можете запустить

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

Связанный контент