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

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

Re: [shell-script] localizar blocos dentro de um texto


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] localizar blocos dentro de um texto
Date: Wed, 1 Aug 2007 13:30:11 -0300

Tche, pensa nisso:

awk '/^version/{OK=1}
OK && /^part_number|^name/ {printf ",%s(%s)",$1,$3}
/^created/{OK=0 print "" }' arquivo

,name("70470117-ADAPTATOR),part_number("70470117")

Então, eu tenho um estado chamado "OK" (podia ser qq coisa, tive preguiça
mental.

Quando estiver entre um 'version' e um 'created', cada linha que ele
encontrar com part_number ou name sera impressa em um formato simples de
adaptar ao que vc quer.

A sugestão está ai -- vc precisa adaptar ao seu problema, colocar as Regex
Corretas, adaptar a saída, etc, mas é o melhor que consigo pensar para o seu
problema com tão poucas informações.

[]´s Tiago

On 8/1/07, Wilson Campos <address@hidden> wrote:
>
>   Tenatarei colocar de uma maneira melhor para entender.
>
> Preciso definir o inicio de um loop for como inicio="version = {"
>
> Dentro deste preciso procurar algumas linhas e envia-las a uma variavel
> elas tem um padrao do tipo linha que comece com "part_number"
>
> detectar o final do loop com fim="created ={"
>
> verificar se alguma das linhas procuradas dentro do loop nao existem, caso
> nao existam neste bloco retornar um valor defaut para elas
> imprimir as variaveis localizadas + os valores default caso nao existam
>
> Procurar novamente pelo inicio do proximo bloco.
>
> Se alguem puder m ajudar agradeco, pois, estou quebrando a cabeca a uma
> semana.
> Grato!
>
>
> On 7/30/07, Wilson Campos <address@hidden <wcampos5%40gmail.com>>
> wrote:
> >
> > Thiago,
> > na verdade as linhas estão entre:
> > version = {
> > e
> > created = {
> >
> > São as linhas referentes a:
> > part_number =
> > e
> > name =
> >
> > em alguns blocos não tem o part_number em outro pode nao ter name,
> preciso
> > da seguinte saida:
> > part_number(linha completa),name(linha completa)
> > o bloco que faltar part number por exemplo preciso colocar o separador "
> ,"
> > mesmo assim para importar para uma base de dados.
> > O arquivo tem umas 60.000 linhas
> >
> > Ja quebrei a cabeça um montão. Qualquer ajuda é bem vinda.
> > Obrigado a todos!
> >
> >
> >
> >
> >
> > On 7/30/07, Tiago Barcellos Peczenyj 
> > <address@hidden<tiago.peczenyj%40gmail.com>>
> wrote:
> > >
> > > testa assim:
> > >
> > > sed -n '/^version/,/^created/p' arquivo
> > >
> > >
> > > On 7/30/07, Wilson Campos <address@hidden 
> > > <wcampos5%40gmail.com><wcampos5%40gmail.com>>
> > > wrote:
> > > >
> > > > Gostaria de localizar uma frase dentro de um texto que contem varios
> > > > blocos
> > > > e enviar para outro texto. Alguem saberia me ajudar?
> > > > Segue abaixo um exemplo:
> > > >
> > > > cat file.txt
> > > >
> > > > package = {
> > > > platform = 3
> > > > release = "I-DEAS 10 Update m2 Windows"
> > > > schema_code = 101
> > > > filename = "9850NGD.pkg"
> > > > }
> > > >
> > > > version = {
> > > > item_passport = "3261984044:865340667:845"
> > > > version_passport = "2a94965a-aa39-11db-9cc4-0030d301c8f9"
> > > > name = "70470117-ADAPTATOR 1 AND 3"
> > > > type = "LIB PART"
> > > > part_number = "70470117"
> > > > version_number = 2
> > > > filename = "70470117_0036.prt"
> > > > intent = "reference"
> > > > project = "3.0-ELETRONICO"
> > > > library = "3.0-ELETRONICO"
> > > > state = "INITIAL"
> > > > created = {
> > > > login = "felipe"
> > > > on = "Jan-22-2007 15:37:00.01"
> > > > }
> > > > last_modified = {
> > > > login = "ideasadm"
> > > > on = "Feb-01-2007 10:39:28.02"
> > > > }
> > > >
> > > > As linhas que eu quero estao entre version = { e created = {
> > > > Na verdade filename e part_number mas em alguns casos nao tem
> > > part_number.
> > > > Alguem saberia me ajudar?
> > > >
> > > > Grato!
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > --
> > > Tiago B Peczenyj
> > > Linux User #405772
> > >
> > > http://peczenyj.blogspot.com/
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


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



reply via email to

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