- Gerar link
- Outros aplicativos
Postagem em destaque
- Gerar link
- Outros aplicativos
Lidar com arquivos de log com milhares de linhas não é uma tarefa fácil, principalmente quando se precisa de linhas especificas com dados dinâmicos, como por exemplo; data e hora. Para isso devemos criar uma máscara, capaz de buscar cadeias de caracteres que se enquadrarem ao padrão procurado.
Montei algumas máscaras utilizando expressões regulares:
Máscara: HH:MM
# Máscara: HH:MM:SS
Formato: 24 horas
# Máscara: HH:MM
# Máscara: HH:MM:SS
# Máscara: DD/MM/AAAA
# Máscara: DIA_SEMANA, DIA_MES de MES de ANO
Somente as linhas com as expressões completas serão validadas.
Exemplo:
Usando a máscara HH:MM no formato 12 horas.
egrep "\b(0[1-9]|1[0-2]):([0-5][0-9])\b"
Linhas:
Para que máscara seja válida em qualquer posição da expressão, remova o meta caractere de borda '\b', tanto no inicio, quanto do final da expressão regular.
A mesma máscara sem o '\b'
egrep "(0[1-9]|1[0-2]):([0-5][0-9])"
Linhas:
Somente a linha '13:00' não foi validada, porque não se enquadra no formato 12 horas da máscara.
Montei algumas máscaras utilizando expressões regulares:
Hora
Formato: 12 horasMáscara: HH:MM
egrep "\b(0[1-9]|1[0-2]):([0-5][0-9])\b"
# Máscara: HH:MM:SS
egrep "\b(0[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9])\b"
Formato: 24 horas
# Máscara: HH:MM
egrep "\b([01][0-9]|2[0-3]):([0-5][0-9])\b"
# Máscara: HH:MM:SS
egrep "\b([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])\b"
Data
# Máscara: DD/MM/AA
egrep "\b(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/([0-9]{2})\b"
# Máscara: DD/MM/AAAA
egrep "\b(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/([0-9]{4})\b"
# Máscara: DIA_SEMANA, DIA_MES de MES de ANO
egrep '\b([Ss]egunda|[Tt]erça|[Qq]uarta|[Qq]uinta|[Ss]exta|[Ss]ábado|[Dd]omingo),\s(0[1-9]|[12][0-9]|3[01])\s[dD]e\s([Jj]aneiro|[Ff]evereiro|[Mm]arço|[Aa]bril|[Mm]aio|[Jj]unho|[Jj]ulho|[Aa]gosto|[Ss]etembro|[Oo]utubro|[Nn]ovembro|[Dd]ezembro)\sde\s[0-9]{4}\b'
Somente as linhas com as expressões completas serão validadas.
Exemplo:
Usando a máscara HH:MM no formato 12 horas.
egrep "\b(0[1-9]|1[0-2]):([0-5][0-9])\b"
Linhas:
13:00 - falso
12:55 - verdadeiro
são 12:55 hora do almoço - verdadeiro
12:55#almoço - falso
hora,12:55 - falso
12:55 - verdadeiro
são 12:55 hora do almoço - verdadeiro
12:55#almoço - falso
hora,12:55 - falso
Para que máscara seja válida em qualquer posição da expressão, remova o meta caractere de borda '\b', tanto no inicio, quanto do final da expressão regular.
A mesma máscara sem o '\b'
egrep "(0[1-9]|1[0-2]):([0-5][0-9])"
Linhas:
13:00 - falso
12:55 - verdadeiro
são 12:55 hora do almoço - verdadeiro
12:55#almoço - verdadeiro
hora,12:55 - verdadeiro
12:55 - verdadeiro
são 12:55 hora do almoço - verdadeiro
12:55#almoço - verdadeiro
hora,12:55 - verdadeiro
Somente a linha '13:00' não foi validada, porque não se enquadra no formato 12 horas da máscara.
Comentários
Postar um comentário