Marcio Gil, Muitíssimo obrigado cara...fenomenal..show de bola a solução...não ia conseguir chegar a esse resultado nunca...rsrs
Se vc tiver a fonte que vc aprendeu a fazer isso e não se importar em compartilhar seria bom..rs muito obrigado novamente! Cleberson --- Em shell-script@yahoogrupos.com.br, Márcio Gil <marciom...@...> escreveu > > Em 26/5/2010 17:16, cleberson escreveu: > > Boa tarde! > > > > Gostaria de uma ajuda para solucionar este desafio(pra min..rs). > > Desejo capturar um intervalo de linhas separadas por chaves. > > > > ex: > > > > #arquivo teste > > primeira_linha > > teste{ > > linha1 > > linha2 > > linha3 > > } > > ultima_linha > > > > Gostaria de saber qual comando posso utilizar para que seja > > possivel jogar o que esta entre chaves para alguma variavel: > > > > linha1 > > linha2 > > linha3 > > > > desde já agradeço atenção! > > > > att, > > Cleberson. > > > > Ve se assim complica: > > $ cat temp.txt > #arquivo teste > primeira_linha > teste{ > linha1 > linha2 > linha3 > } > ultima_linha > > $ sed -n '/^teste{$/{N;s/^.*\n//;:a;N;/\n}$/!{ba};s/\n}$//;p}' temp.txt > linha1 > linha2 > linha3 > $ > > Por via das duvidas vou tentar explicar: > > /^teste{$/ # Se encontrar a linha 'teste{' > { > N; # Junte com a linha seguinte > s/^.*\n//; # Retire a primeira linha (a linha 'teste{') > :a; # Inicio do laco > N; # Junte com a linha seguinte > /\n}$/!{ba}; # Enquanto nao encontrar a linha '}' > s/\n}$//; # Entao remova a ultima linha (a linha '}') > p # E exiba o resultado > } > > A opcao -n do sed desliga a impressao automatica, so imprimindo ao > encontrar o comando 'p'. > > Marcio Gil. >