Jump to content
Fórum Script Brasil
  • 0

Substituição dentro de um delimitador


csk

Question

Olá pessoal,

Preciso fazer substituição dentro de delimitadores dentro de vários arquivos .php.

Estava tentando fazer em bash com sed, mas sem muito sucesso. Me disseram para tentar usar Perl seria. Como eu não tenho muito conhecimento nesta linguam, estou quebrando a cabeça.

Eu quero substituir tudo dentro de um gettext que for "empresa" ou "Empresa" por <a href=\"http://www.empresa.com.br\">Empresa</a>. Ou seja, é importante que só substitua dentro do gettext.

Vou dar um exemplo pra vocês:

Lá no meio do arquivo tem uma linha:

<?=gettext("Nome da Empresa); ?>

Isto virar:

<?=gettext("Nome da <a href=\"http://www.empresa.com.br\">Empresa</a>"); ?>

Pode acontecer de uma linha ter mais de um gettext, pode ser que a linha teha empresa ou Empresa fora do gettext... Coisas do gênero.

O mais importante pra mim é sabe como fazer esta modificação dentro dos delimitadores gettext(" e ").

Alguém pode me ajudar?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Só para dar uma idéia de um script gambiarrento que fiz que funciona mais ou menos:

#!/usr/bin/perl

#use strict;
#use warnings;
open F, "$ARGV[0]" or die "Arquivo \"$ARGV[0]\" não encontrado";

while (<F>) {
        chomp;
        if ($_ =~ /.*gettext\(\".*[Ee]mpresa.*\"\)/) {
                ($pri, $seg, $ter) = split (/"/, $_, 3);
                $seg =~ s/[Ee]mpresa/<a href=\\\"http:\/\/www.empresa.com.br\\\">Empresa<\/a>/;
                print ("$pri\"$seg\"$ter ");
        }
        else { print ("$_\n"); }

}
close F;

Só que estou dando split com " o que não é o ideal.

Link to comment
Share on other sites

  • 0
>Pode acontecer de uma linha ter mais de um gettext, pode ser que a linha teha empresa ou Empresa fora do gettext... Coisas do gênero.

Hmm, e como seria fora do gettext?

Já fiz funcionando pro gettext. Só não posso dar replace geral em "Empresa", senão vai substituir tudo. Preciso saber em quais casos vai ser substituído para modificar a regexp.

[]'s

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...