Olá pessoal. Bem eu acho que não me expressei bem, mas como muitos do grupo já estão acostumados com isso, eu diria que é até um exercício de regex entender o que a galera pergunta aqui.
Perguntar as coisas em um momento de pressão é horrivel, pois provavelmente você não passará todas a informações necessárias e ou incompletas. A idéia é muito similar a tags, que na verdade não deixa de ser, só que chamamos internamente de marcações. =P Exemplo. Texto: "Mais informações no site do projeto Gnome [1]" O que eu faço, pego o [1] e coloco um _ depois do colchete que fecha ficando assim: [1]_. Essa marcação é utilizada pelo txt2tags [2], justamente do Marinho... =) Mas eu tenho que "tagear" esses arquivos, então estou automatizando parte do processo. A ajuda dos Julio e do Cristiano foram muito boas. Obrigado aos 2 Mas como eu mesmo esperava, eu achei a solução a partir da dica dos 2. Como disse, uso o Geany [3], e ele tem um suporte a busca e substituição por regex. Graças aos agrupamentos e o retrovisor em regex eu busco e substitu as "marcações" assim: Find: (\[[1-9]\]) Replace: \1_ E os outro padrões ficaram assim: Find: (figura [1-9]) Replace: ??\1?? Resultado = (??figura 1??) Resumindo, a solução foi mais fácil que imaginei, e mais simples que as propostas. Desculpem o texto gigante, seria mais fácil ter blogado a resposta, mas pensei que seria interessante compartilhar a solução até mesmo pela simplicidade da solução. =) [1] www.gnome.org [2] http://txt2tags.sourceforge.net/ [3] http://www.geany.org/ [ ]'s Mauro Navarro Baraldi mauro.bara...@gmail.com Skype: mauro.baraldi Celular: +55 11 67370053 Fone: +55 11 36752600 Good thoughts are no better than good dreams, unless they be executed. 2010/7/13 Cristiano <boxferr...@gmail.com> > > > > > --- Em shell-script@yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>, > "Mauro" <mauro.bara...@...> escreveu > > > > > Boa tarde senhores. > > > > Tenho alguns arquivos que tenho que alterar partes deles seguindo um > padrão mas não estou conseguindo encontrar um caminho por ser algo un tanto > quanto específico. > > > > Um exemplo é o seguinte. > > > > Original: [1] > > Alterado: [1]_ > > > > Mas o conteúdo de dentro dos colchetes pode alterar, tanto o caracter > como a quantidade de caracteres ([2] ou [35]). E ainda há outras padrões > como: > > > > Original: (fonte 2) > > Alterado: ??(fonte 2)?? > > > > Encontrar o padrões não é o problema. A dificuldade é manter o "meio" > intacto e mudar o resto. > > > > Eu estou usando um editor de textos gráfico, o Geany para ser mais > específico, mas se postarem exemplos ou dicas com sed eu me viro para > adaptar. > > > > [ ]'s > > Mauro Baraldi > > > > Mauro, você pode usar o sed e o conceito de grupos e, como chama o Aurélio, > retrovisores, das expressões regulares. > > Antes de mais nada dá uma olhada na teoria: > > Sobre os grupos: > http://guia-er.sourceforge.net/grupo.html#2_4_3 > > Sobre o 'retrovisor': > http://guia-er.sourceforge.net/retrovisor.html > > Para resolver seu problema, crie uma ER com 3 grupos, sendo uma primeira > parte composta de um grupo que case com o início da linha até o primeiro > colchete, uma segunda parte intermediária que case com o número entre os > colchetes, ou seja, a parte que você quer manter, e uma última parte casando > com a parte que vai do seguindo colchete até o fim da linha. > > Use o comando se substituição do sed (s) para substituir a ER composta > pelos 3 grupos por "algo novo" + grupo 2 + "outro algo novo". > > Tenta montar a ER e se, não conseguir, poste para a gente. > > 2 dicas de antemão, que lhe pouparão tempo: > > 1) use o grep (ou egrep) para testar a ER, com a opção --color=auto. É mais > fácil de testar o casamento (ou não) da ER do que direto pelo sed. > > 2) Atente para os caracteres especiais (metacaracteres) ao construir seu > padrão. Colchetes e parênteses possuem superpoderes nas expressões regulares > e precisam ser devidamente escapados para serem corretamente casados. > > Mais sobre como 'escapar' estes caracteres em: > > http://guia-er.sourceforge.net/escape.html#2_4_1 > > Atente também para o fato de que o grep e o sed tratam os metacaracteres de > maneira diferente do egrep. Portanto, se seu padrão casar com o egrep e os > metacaracteres não forem corretamente escapados no sed, seu código irá > falhar. > > Leia mais sobre isso no item 19 do canivete do Aurélio: > > http://aurelio.net/shell/canivete.html > > Se não conseguir montar a ER, posta para a gente o que você tentou. > > > [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: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- 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 <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: shell-script-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html