shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Ordenar linhas com campos do tipo data


From: Julio C. Neves
Subject: Re: [shell-script] Ordenar linhas com campos do tipo data
Date: Fri, 4 Jul 2014 22:51:13 -0300

Qdo fiz:
^([[:alpha:] ]+);
achava que até o 1º ponto e vírgula só existiam maiúsculas, minúsculas e espaços em branco. Aí vc me aparece com um ponto de expantação. Bagunçou tudo! Basta inserilo no grupo, ficando assim:
^([[:alpha:] !]+);

Fica o Dito pelo não dito. ;)

Que venha a Alemanha!

Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 02 a 06/06
São Paulo 4Linux 21 a 25/07
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.



Em 4 de julho de 2014 12:55, address@hidden [shell-script] <address@hidden> escreveu:
 

Mestre Julio,


Sua dica pareceu resolver meu problema.

Mas esmiuçando o resultado, notei um problema:

Vai meu arquivo completo:


Baterias OK !;09/06/14;10:02:10
Faltou energia;05/06/14;23:37:54
Faltou energia;05/06/14;23:38:20
Voltou energia;05/06/14;23:38:20
Desligado chave local;05/06/14;23:47:48
Desligado cve local;05/06/14;23:47:48
Voltou energia;05/06/14;23:47:48
Desligado chave local;05/06/14;23:52:38
Ligado chave local;05/06/14;23:52:38
Faltou energia;06/06/14;07:58:12
Ligado chave local;06/06/14;07:58:12
Faltou energia;06/06/14;07:59:13
Voltou energia;06/06/14;07:59:13
Desligado chave local;06/06/14;08:05:14
Voltou energia;06/06/14;08:05:14
Desligado chave local;06/06/14;08:06:46
Ligado chave local;06/06/14;08:06:46
Auto teste de baterias;09/06/14;10:02:00
Ligado chave local;09/06/14;10:02:00
Auto teste de baterias;09/06/14;10:02:10
Baterias OK;09/06/14;10:02:10
Auto testde baterias;16/06/14;10:02:00
Auto teste de baterias;16/06/14;10:02:00
Auto teste de baterias;16/06/14;10:02:10
Auto teste de baterias;23/06/14;10:02:00
Auto teste de baterias;23/06/14;10:02:10
Auto teste de baterias;30/06/14;10:02:05
Auto teste de baterias;30/06/14;10:02:15
Baterias OK !;16/06/14;10:00:00
Baterias OK !;16/06/14;10:02:00
Baterias OK !;16/06/14;10:02:10
Baterias OK !;23/06/14;02:10:00
Baterias OK !;23/06/14;10:02:00
Baterias OK !;23/06/14;10:02:10
Baterias OK !;30/06/14;10:02:05
Baterias OK !;30/06/14;10:02:15


Conforme seus ensinamentos, comandei:

cat meuarquivo.txt | sed -r 's|^([[:alpha:] ]+);([0-9]{2})/([0-9]{2})/([0-9]{2});(.*)$|\1;\4/\3/\2;\5|' |  sort -t\; -k2,3 | sed -r 's|^([[:alpha:] ]+);([0-9]{2})/([0-9]{2})/([0-9]{2});(.*)$|\1;\4/\3/\2;\5|'


O retorno:


Baterias OK !;09/06/14;10:02:10
Faltou energia;05/06/14;23:37:54
Faltou energia;05/06/14;23:38:20
Voltou energia;05/06/14;23:38:20
Desligado chave local;05/06/14;23:47:48
Desligado cve local;05/06/14;23:47:48
Voltou energia;05/06/14;23:47:48
Desligado chave local;05/06/14;23:52:38
Ligado chave local;05/06/14;23:52:38
Faltou energia;06/06/14;07:58:12
Ligado chave local;06/06/14;07:58:12
Faltou energia;06/06/14;07:59:13
Voltou energia;06/06/14;07:59:13
Desligado chave local;06/06/14;08:05:14
Voltou energia;06/06/14;08:05:14
Desligado chave local;06/06/14;08:06:46
Ligado chave local;06/06/14;08:06:46
Auto teste de baterias;09/06/14;10:02:00
Ligado chave local;09/06/14;10:02:00
Auto teste de baterias;09/06/14;10:02:10
Baterias OK;09/06/14;10:02:10
Auto testde baterias;16/06/14;10:02:00
Auto teste de baterias;16/06/14;10:02:00
Auto teste de baterias;16/06/14;10:02:10
Auto teste de baterias;23/06/14;10:02:00
Auto teste de baterias;23/06/14;10:02:10
Auto teste de baterias;30/06/14;10:02:05
Auto teste de baterias;30/06/14;10:02:15
Baterias OK !;16/06/14;10:00:00
Baterias OK !;16/06/14;10:02:00
Baterias OK !;16/06/14;10:02:10
Baterias OK !;23/06/14;02:10:00
Baterias OK !;23/06/14;10:02:00
Baterias OK !;23/06/14;10:02:10
Baterias OK !;30/06/14;10:02:05
Baterias OK !;30/06/14;10:02:15


Note que o primeiro e segundo campos estão com datas desordenadas.

Os outro parecem estar certos.


Estou errando em algo?


Grato mais uma vez


Diramos



reply via email to

[Prev in Thread] Current Thread [Next in Thread]