다양한 불필요한 정보를 제거하기 위해 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를 사용해 보세요.

예를 들어, 시스템에서 "foo" 프로세스의 PID(프로세스 ID)를 원할 경우 다음을 실행할 수 있습니다.

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

관련 정보