Se houver sempre um espaço antes da hora, como nos dados de exemplo, você pode usar apenas grep
:
grep " 03:" file
Eu quero pesquisar apenas as linhas nas quais uma coluna começa com 03:
(horas), mas usando o comando abaixo, mostrando todas as linhas onde o valor contém 03
. É um exemplo de que os dados são muito grandes em um arquivo.
awk '{print $2 " " $3}' logfile | grep "03:"
Os dados:
05 00:03:12 0.05
05 00:28:03 0.05
05 00:33:12 0.09
05 03:03:12 0.09
05 03:08:12 0.05
05 03:13:12 0.05
05 03:18:12 0.05
05 03:23:12 0.027
Se houver sempre um espaço antes da hora, como nos dados de exemplo, você pode usar apenas grep
:
grep " 03:" file
awk '$3 ~ /^03/ {print $2 " " $3}' logfile
deve fazer o que quiser; o $ 3 ~ / ^ 03 / verifica se a terceira coluna do arquivo de entrada ($ 3) começa com (^) 03. O resto é a sintaxe de correspondência de padrões do awk (~ / pattern /). Note que isso também economiza a sobrecarga de usar o grep (1 loop em vez de 2 em termos de programação).
#awk '{print $2 " " $3}' logfile | grep "03:" | uniq -u
Tags grep text-processing awk