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

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

RES: RES: RES: [shell-script] Otimizacao codigo


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: RES: RES: [shell-script] Otimizacao codigo
Date: Fri, 20 Aug 2004 18:46:09 -0300

Frederico,
se o seu negócio é otimizar *MESMO* :), ai vai:

sort -t'/' -k 3.1,3.2 -k 1.8,1.9 -k 2.1,2.2 t2
       11/24/04 DAJ262         full DATA.AA.188
       11/24/04 DAJ263         full DATA.AA.189
       03/24/05 DAJ282         full AIX.AA.001
       06/04/05 DEG622         full ARCHIVE.AA.001
       06/06/05 DAJ106         full AIX.AA.002
       06/06/05 DEG619         full ARCHIVE.AA.002
       06/06/05 DEG620         full ARCHIVE.AA.003
       07/29/13 DAJ200         full DATA.AA.134

onde: 
-t informa o separador de campos;
-k informa as posições dentro de cada campo, no formato
campo.pos_ini,campo.pos_fim

Eu supuz que a sua data estava no formato mm/dd/aa então as minhas chaves de
classificação (-k) foram:

3.1,3.2 - terceiro campo da posição 1 a 2 (ano);
1.8,1.9 - primeiro campo da posição 8 a 9 (mes). Comecei na 8 para ignorar
os brancos iniciais;
2.1,2.2 - segundo campo da posição 1 a 2.

Caso não seja esta a ordem pretendida, vc já tem as ferramentas para usar do
jeito que vc quiser.

Esta sintaxe só vale para o GNU sort. Caso vc esteja usando *BSD ou algum
sabor UNIX (ao qual eu tenha acesso), me avise que mando a sintaxe correta.

Julio Cezar Neves
- Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| >> -----Mensagem original-----
| >> De: address@hidden
| >> [mailto:address@hidden]
| >> Enviada em: sexta-feira, 20 de agosto de 2004 09:40
| >> Para: address@hidden
| >> Assunto: [shell-script] Otimizacao codigo
| >>
| >>
| >>
| >> Um determinado comando me produz a saída:
| >>
| >>        expires barcode          (%) volume
| >>        03/24/05 DAJ282         full AIX.AA.001
| >>        06/06/05 DAJ106         full AIX.AA.002
| >>        06/04/05 DEG622         full ARCHIVE.AA.001
| >>        06/06/05 DEG619         full ARCHIVE.AA.002
| >>        06/06/05 DEG620         full ARCHIVE.AA.003
| >>        07/29/13 DAJ200         full DATA.AA.134
| >>        11/24/04 DAJ262         full DATA.AA.188
| >>        11/24/04 DAJ263         full DATA.AA.189
| >>
| >> Preciso desta saída ordenada pelo primeiro campo (expires -
| >> data). Consegui
| >> isto fazendo:
| >>
| >>       cat t2 | awk '{print substr($0,8,2)$0;}' | sort | awk '{print
| >> substr($0,4,60);}'
| >>
| >> Alguém sugere um código mais elegante para fazer a mesma coisa (se
| >> possível, melhor)?
| >>
| >>
| >> Obrigado.
| 
| 
| 
| 
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 
 


reply via email to

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