Solaris + arquivo de classificação de acordo com data e hora pelo comando sort

1

Eu tenho junto lista que criou em /var/tmp/file.txt de algum script (na máquina Solaris) a lista a seguir tem 4 campos

por favor, conselhos sobre como ordenar a lista de acordo com o seguinte TIMESTAMP (por comando de ordenação ou outro comando solaris como awk ou sed .....)

por exemplo, a data & hora 15-10-2009 08:29:18 deve ser antes de 15-10-2009 08:29:10 ... etc

exemplo de arquivo.txt (arquivo não classificado)

  PHONE_NUMBER         TIMESTAMP                   ID  TYPE
  -------------------- -------------------        ---- -------------- 
  972544111222         15-10-2009 08:29:18         20  sharp_gx10
  33633333333          24-09-2009 16:17:45         20  other_mm_phone
  841990000043         08-10-2009 09:04:38         60  other_mm_phone
  972541230001         08-10-2009 14:23:48         20  other_mm_phone
    
por yael 17.04.2012 / 09:46

1 resposta

0

Como eu disse em um comentário, o formato timestamp faz minha abordagem parecer complicada, mas é principalmente repetição mecânica.

awk 'NR>2 {print $1"-"$2"-"$3"-"$4"-"$5}' file.txt |\
awk -F'-' '{print $4"-"$3"-"$2"-"$5"-"$1"-"$6"-"$7}' |\
sort |\
awk -F'-' '{print $5"\t"$1"-"$2"-"$3" "$4"\t"$6"\t"$7}'
  1. Ignore as duas primeiras linhas (apenas um cabeçalho) e transforme as linhas restantes para usar um único delimitador (traço, neste caso, verifique se não é permitido aparecer no último campo) (originalmente ele alterna entre espaço em branco e traço , por causa do formato de data),
  2. divida os campos com traço e mova a data para o início da linha (para facilitar o uso com sort ) e imprima em um formato decrescente,
  3. classificar e
  4. imprima as informações em um formato semelhante à entrada (troca $1 e $3 para obter o formato de data antigo).

Adicione as linhas de cabeçalho depois, se elas forem desejadas.

EDITAR : Eu vi que você queria um tipo inverso. Basta alterar sort para sort -r .

    
por 17.04.2012 / 10:39