The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Perl: string substituição padrão: \u003d 'abc ...', Niroj Programação Shell Script e 14 01-22-2009 04:58
Seqüência substituição Ctrl-Alt-Del Programação Shell Script e 3 10-14-2008 03:37
string substituição laxmi Programação Shell Script e 3 02-16-2008 06:11
Seqüência Substituição laxmi UNIX & avançada para usuários experientes 1 02-16-2008 06:08
Sed String Substituição pciatto UNIX para Dummies Perguntas & Respostas 2 04-29-2002 11:10

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-10-2009
melanie_pfefer melanie_pfefer is offline
Usuário
  
 

Join Date: Nov 2006
Lugares: 234
string substituição no perl

Oi,

Eu tenho um arquivo modelo e pretender substituir 3 parâmetros para os valores que eu quero. estes valores são um parâmetro no arquivo.

Alguma idéia de como fazer isso em perl?

o parâmetro arquivo algo parecido com:

host_name \u003d jupiter
Port \u003d 1562
IPAddress \u003d 10.1.34.10


do arquivo de modelo tem lotes de entrada.


CX_HOST_NAME \u003d host_name
CX_IPADDRESS \u003d ip_address
CX__PORT \u003d porta

obrigado.
  #2 (permalink)  
Old 02-10-2009
quirkasaurus's Avatar
quirkasaurus quirkasaurus is offline
Usuário
  
 

Join Date: Jan 2009
Localização: cantão, michigan
Lugares: 373
Eu não sou um perl monge. . . mas isso funciona:

Código:
#!/usr/bin/perl

#----------------------------------------------------------------------#
# Read both files into arrays...                                       #
#----------------------------------------------------------------------#
$param_file = "parameters.dat";

unless ( open FIN, "$param_file" ){
  print "cannot open $param_file \n";
  exit(1);
  }

@a_parameters = <FIN>; chomp @a_parameters; close FIN;

$template_file = "template.dat";

unless ( open FIN, "$template_file" ){
  print "cannot open $template_file \n";
  exit(1);
  }

@a_template = <FIN>; chomp @a_template; close FIN;

#----------------------------------------------------------------------#
# Peruse one array...                                                  #
#----------------------------------------------------------------------#
for $x ( 0 .. scalar( @a_parameters ) - 1 ){
  ( $var_name, $equals, $var_value ) = split( / /, $a_parameters[$x] );
  $var_name = uc( $var_name );
#----------------------------------------------------------------------#
# Looking for values in the other...                                   #
#----------------------------------------------------------------------#
  for $y ( 0 .. scalar( @a_template ) - 1 ){
    next unless ( $template[$y] = m/CX_*$var_name = / );
#----------------------------------------------------------------------#
# Substitute the template with the parameter...                        #
#----------------------------------------------------------------------#
    $a_template[$y] =~ s/= .*$/= $var_value/;
    }
  }

#----------------------------------------------------------------------#
# ... and print.                                                       #
#----------------------------------------------------------------------#
for $y ( 0 .. scalar( @a_template ) - 1 ){
  print "template entry " . ( $y + 1 ) . ": $a_template[$y] \n";
  }

Última edição por quirkasaurus; em 02/10/2009 02:35.. Motivo: limpar ...
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 05:28.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0