Perl 命令行 + 在文件中的字符串前添加 PATH

Perl 命令行 + 在文件中的字符串前添加 PATH

我想通过 perl 命令行在文件中添加 PATH - /usr/local/bin/perl befpore 字符串(perl 命令行必须在我的 bash 脚本中),我有一台 solaris 机器

要添加的目标 -在 /usr/local/bin/perl 线前$APIDIR/scan.pl在文件中和字符之后 -

请指教如何添加 PATH -在 /usr/local/bin/perl$APIDIR/scan.pl所以最后我会得到

新的生产线——

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

代替

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

我尝试了以下操作但没有改变行:

  [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";

答案1

您可以使用 sed 执行此操作,例如

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

或者使用 perl

perl -p -i -e  's|$APIDIR/scan.pl| /usr/local/bin/perl   $APIDIR/scan.pl|' file

答案2

所以你想用 /usr/local/bin/perl $APIDIR 替换 $APIDIR ?如果是这样,你的正则表达式是错误的。你想要类似的东西:

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

因此尝试一下:

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

我希望这就是你所追求的——

相关内容