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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED] <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 <[EMAIL > > PROTECTED]<tiago.peczenyj%40gmail.com>> > wrote: > > > > > > testa assim: > > > > > > sed -n '/^version/,/^created/p' arquivo > > > > > > > > > On 7/30/07, Wilson Campos <[EMAIL PROTECTED] > > > <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]