Imprimindo todas as colunas após o quinto com awk

3

Estou usando isso para filtrar um arquivo de registro e estou tentando incluir o máximo de detalhes relevantes possível no console:

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

Esta é minha entrada bruta:

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

e esta é a saída do meu 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

Não é tão óbvio nesta página, mas no console está claro que o awk está adicionando espaços em branco para separar as colunas que eu configurei como "" .

i.e. Há uma lacuna maior no início da linha e entre o timestamp e a informação.

Posso me livrar dele com um comando awk melhor?

    
por Adam 09.02.2017 / 12:36

1 resposta

2

É possível fazer no awk, mas isso é muito mais fácil

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
    
por 09.02.2017 / 14:32

Tags