awk로 5 번째 이후의 모든 열 인쇄


3

로깅 파일을 필터링하기 위해이 도구를 사용하고 있으며 콘솔에 대해 가능한 한 많은 세부 정보를 집어 넣으려고합니다.

 awk -F " " '{$1=$2=$4=$5=$6=$7=""; print $0}'

이것은 내 원시 입력입니다 :

149.177.5.87 - [08/Feb/2017:18:14:20 +0000] 18:14:20:408 18:14:20:435 11140 "GET /2/forecast/KBBL/lastSave HTTP/1.1"  200 43 27 27

그리고 이것은 내 awk'd 출력입니다 :

  [09/Feb/2017:11:27:01     "GET /2/data/load/KBBL/2017-01-25/daily?startDate=2017-01-01&endDate=2019-12-31&firstWeekday=0 HTTP/1.1" ?startDate=2017-01-01&endDate=2019-12-31&firstWeekday=0 401 - 1 1

이 웹 페이지에서는 그리 명확하지 않지만 콘솔에서는 awk가 내가 설정 한 열을 분리하기위한 빈 공간을 추가한다는 것이 분명합니다. "".

즉, 줄의 시작 부분과 타임 스탬프와 정보 사이의 간격이 더 큽니다.

더 나은 awk 명령으로 제거 할 수 있습니까?

답변:


2

그것은 awk에서 할 수 있지만 이것은 더 쉽습니다.

nifle@xanadu ~/tmp
$ L='149.177.5.87 - [08/Feb/2017:18:14:20 +0000] 18:14:20:408 18:14:20:435 11140 "GET /2/forecast/KBBL/lastSave HTTP/1.1"  200 43 27 27'

nifle@xanadu ~/tmp
$ echo $L |  cut -d ' ' -f 3,8-
[08/Feb/2017:18:14:20 "GET /2/forecast/KBBL/lastSave HTTP/1.1" 200 43 27 27
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.