[Cascavel-pm] string e carecteres entre aspas ainda
Luis Champs de Carvalho
monsieur_champs em yahoo.com.br
Terça Julho 6 14:56:25 CDT 2004
On Tue, 6 Jul 2004 dexter em ticbrasil.com.br wrote:
> a algum tempo perguntei a vcs, como pegar apenas os caracteres entre
> aspas em uma frase de um texto, com a resposta que vcs me enviarão
> montei alguns scripts que funcionarão muito bem. Porem agora prescisso
> fazer um programa que leia um arquivo, e pegue sempre o terceiro item
> [2], até ai tudo bem, porem as vezes esse item estará entre aspas, e as
> vezes não, gostaria que quando ele estiver entre aspas meu programa
> trate isso e tire as aspas e jogue pra um array :
>
> #!/usr/bin/perl
> `cat cfg|grep fruta>fruta`;
> open (FRUTA, "<fruta");
> while (<FRUTA>){
> push @fruta, (split (/ /,$_)) [2];
> }
> foreach $fruta (@fruta){
> if ($fruta eq "CARACTERES_ENTRE_ASPAS" ){
> $frut substr($fruta, 1);
> chop $frut;
> push @frut, $frut;
> print "$frut\n";
> }
> else
> {
> push @frut, $frut;
> print "bbb";
> }
> }
>
Ricardo, eu não compreendi exatamente o que seu programa-exemplo faz...
mas parece que está de acordo com a especificação do que você deseja...
Outra forma de fazer a mesma coisa é assim:
perl -F'/\s+/' -lne 's/\"+//og; print if m/fruta/o;'
Claro, isso não usa o @fruta, já que você não me contou para que ele
serve... :-)
Mas você sempre pode mandar isso para outro script perl, simplesmente
acrescentando um "|" na frente do comando e escrevendo outro script que
usa alguma coisa do tipo
#!/usr/bin/perl
use warnings;
use diagnostics;
use strict;
while( <> ){
# Processa aqui, assume que $_ vai receber
# um elemento do array "@frutas" de cada vez...
}
__END__
Espero que isso ajude.
Mais detalhes me ajudariam a ajudar mais... :-)
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is BSc in Comp Science,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm