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

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

Re: [shell-script] Awk em várias linhas ou sed...


From: Miranda
Subject: Re: [shell-script] Awk em várias linhas ou sed...
Date: Wed, 03 Oct 2007 10:34:11 -0300

desenvolvi aqui mas deixo pra você enxugar ai caso 
goste e verifique que funciona

Conteudo do arquivo de entrada usado :  xute.doc
[miranda@guitar tmp]$ cat xute.doc
Document 1
CDOC 759262
TIPO ACM-SRDM-CO
REG 200601801630
DESC Descrição muito longa
com uma série de linhas
muitas linhas
muitas muitas
DATA 20060622

Document 2
CDOC 759263
TIPO ACM-SRDM-CU
REG 200601801630
DESC Descrição mais longa
com outra série de linhas
outras muitas linhas
muitas muitas muitas
muitas muitas muitas muitas
muiumumumu
DATA 20070723

conteúdo do arquivo awk.cmd que será a entrada do awk : awk.cmd

[miranda@guitar tmp]$ cat awk.cmd
BEGIN{EM_ID=0}
$1 == "Document"{EM_DESC=0;EM_DATA=0;EM_TIPO=0;EM_ID=1}
$1 == "TIPO"{EM_ID=0;EM_DESC=0;EM_DATA=0;EM_TIPO=1;Tipo=$2}
$1 == "REG"{EM_ID=0;EM_DESC=0;EM_DATA=0;EM_TIPO=0}
$1 == "DESC"{EM_ID=0;EM_TIPO=0;EM_DESC=1;EM_DATA=0}
$1 == "DATA"{EM_ID=0;EM_TIPO=0;EM_DESC=0;EM_DATA=1}
{
  if (EM_ID == 1 && $1 != "Document")
  {
    printf("ID_DOCUMENTO:\nSIGLA%s\n",$2);
    EM_ID=0;
  }
  if (EM_TIPO == 1)
  {
    printf("TIPO_DOCUMENTO:\n%s\n",Tipo);
  }
  if (EM_DESC == 1)
  {
    sub("DESC","");
    printf("DESCRICAO_DOCUMENTO:\n%s\n",$0);
    while ( getline && $1 != "DATA")
      print
    EM_DESC=0;
    ANO=substr($2,0,4);
    MES=substr($2,3,2);
    DIA=substr($2,7);
    printf("DATA_DOCUMENTO:\n%s/%s/%s\n\n",DIA,MES,ANO);
  }
}

teste do programa :
[miranda@guitar tmp]$ clear;awk -f awk.cmd xute.doc
ID_DOCUMENTO:
SIGLA759262
TIPO_DOCUMENTO:
ACM-SRDM-CO
DESCRICAO_DOCUMENTO:
 Descrição muito longa
com uma série de linhas
muitas linhas
muitas muitas
DATA_DOCUMENTO:
22/06/2006

ID_DOCUMENTO:
SIGLA759263
TIPO_DOCUMENTO:
ACM-SRDM-CU
DESCRICAO_DOCUMENTO:
 Descrição mais longa
com outra série de linhas
outras muitas linhas
muitas muitas muitas
muitas muitas muitas muitas
muiumumumu
DATA_DOCUMENTO:
23/07/2007

On Wed, 2007-10-03 at 09:44 -0300, Eduardo de Paula wrote:
> Miranda,
> 
> esta linha vai servir para um código no arquivo de saida.
> Eu mandei os exemplos meramente ilustrativos.
> 
> Obrigado
> 
> On 10/3/07, Miranda <address@hidden> wrote:
> >
> > Essa linha não vai servir pra nada ?
> >
> > REG 200601801630$
> >
> >
> >
> > ----------------------------------------------------------
> > 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
> >
> >
> >
> 
> -- 
> "Os erros podem ser transformados em acertos quando com eles se
> aprende. Não
> existe a segurança do acerto eterno."
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> 
>  



reply via email to

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