Linha de comandos Perl + adicionar PATH antes da string no arquivo

2

Eu quero adicionar o PATH - / usr / local / bin / perl coluna befpore no arquivo por linha de comando perl (a linha de comando perl deve estar no meu script bash), eu tenho máquina solaris

o alvo para adicionar - /usr/local/bin/perl antes da linha $ APIDIR / scan.pl no arquivo e depois do caractere - "

por favor, dê conselhos sobre como adicionar o PATH - /usr/local/bin/perl antes de $ APIDIR / scan.pl , para finalmente obter

a nova linha -

      my $APIDIR="/usr/local/cp/api";           remark -  this line shouldn’t be change
      my $script="/usr/local/bin/perl   $APIDIR/scan.pl";  

no lugar de

     my $APIDIR="/usr/local/cp/api";
     my $script="$APIDIR/scan.pl";

Eu tentei o seguinte, mas não altero a linha:

  [root@machine1a /var/tmp]#  perl -p -i -e 's/\/usr\/local\/bin\/perl \$APIDIR\/scan.pl/\$APIDIR\/scan.pl/g' file




  [root@machine1a /var/tmp]# more file
  my $APIDIR="/usr/local/cp/api";
  my $script="$APIDIR/scan.pl";
    
por Eytan 22.05.2012 / 06:35

2 respostas

1

Você pode fazer isso com sed, por exemplo.

sed 's|$APIDIR/scan.pl| /usr/local/bin/perl   $APIDIR/scan.pl|' file >file.new

ou com perl

perl -p -i -e  's|$APIDIR/scan.pl| /usr/local/bin/perl   $APIDIR/scan.pl|' file
    
por 22.05.2012 / 18:04
0

Então você quer substituir $ APIDIR por / usr / local / bin / perl $ APIDIR? Se assim for, o seu regex está para trás. Você quer algo como:

s/\$APIDIR\/\/usr\/local\/bin\/perl $APIDIR/

Então tente:

perl -p -i -e 's#\$APIDIR#\/usr\/local\/bin\/perl \$APIDIR#g' file

Espero que isso seja o que você queria -

    
por 22.05.2012 / 06:48