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

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

Re: [shell-script] Inverter Caracteres em String


From: Moroni Vieira
Subject: Re: [shell-script] Inverter Caracteres em String
Date: Sat, 3 Jul 2010 17:49:13 -0700 (PDT)

Me perdoe Julio me expressei na lista incorretamente, como estava dizendo o 
arquivo não segue um padrão de data:
 
20030506
12/01/2001
03/11/1999
20030121
20080322
 
 
O problema está nas linhas onde tem a barra ele formata a data de forma 
incorreta dd/mm/yyyy e para validação da entrada de dados deveria ser yyyymmdd, 
onde não tem barras eu não preciso fazer a inversão, eu preciso fazer a 
inversão nas linhas onde tem a barra.

 
Moroni Vieira
Tecnológo em Redes de Computadores

--- Em sáb, 3/7/10, Julio C. Neves <address@hidden> escreveu:


De: Julio C. Neves <address@hidden>
Assunto: Re: [shell-script] Inverter Caracteres em String
Para: address@hidden
Data: Sábado, 3 de Julho de 2010, 19:44


Moroni,
não entendi! Vc diz que quer inverter e depois mostra a saída sem inversão
como se quisesse somente tirar as barras. Pelo ser ou não ser aí vão as duas
formas.

Tirando as barras:
$ tr -d / <<< "20090220
> 19980423
> 1995/03/05
> 1993/04/01
> 19990304"
20090220
19980423
19950305
19930401
19990304

Invertendo:
$ sed -r 's-/--g;s-(.{4})(.{2})(.{2})-\3\2\1-' <<< "20090220
> 19980423
> 1995/03/05
> 1993/04/01
> 19990304"
20022009
23041998
05031995
01041993
04031999

Abraços,
Julio
Cursos de Shell e Zenity em 2 fins de semana?
- Turmas fechadas em outras cidades ligue (21)8112-9988.


Em 3 de julho de 2010 17:03, Moroni Vieira <address@hidden>escreveu:

>
>
> Pessoal,
>    Boa Tarde estou com um problema para fazer a inversão de posição de
> caracteres em string e peço a ajuda de vocês:
> Tenho um arquivo com o seguinte conteúdo:
>
> 20090220
> 19980423
> 1995/03/05
> 1993/04/01
> 19990304
>
>    Como podem ter notado não existe padrão para o formato data dentro do
> arquivo e preciso que ele fique com o formato yyyymmdd
>    Peguei uma solução sobre o assunto aqui mesmo no grupo estendendo
> expressão regular, eu consigo tirar as barras mas fazer a inversão de
> posição não estou conseguindo:
>
> sed -r 's/(...)(....)/\2\1/g' <<< 03041999
> 19990304
>
> e não saiu como esperado, quero tirar as barras e fazer a inversão, já fiz
> diversos testes com o sed e não conseguir ainda, alguém poderia me ajudar.
>
> Moroni VieiraTenológo em Redes de Computadores
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

---------------------------------------------------------------------
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
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

Links do Yahoo! Grupos





      

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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