Назад | Перейти на главную страницу

Командная строка Perl + добавить PATH перед строкой в ​​файле

Я хочу добавить строку PATH - / usr / local / bin / perl befpore в файл с помощью командной строки perl (командная строка perl должна быть в моем сценарии bash), у меня есть машина solaris

цель для добавления - / USR / местные / бен / perl перед линией $ APIDIR / scan.pl в файле и после символа - "

пожалуйста, посоветуйте, как добавить ПУТЬ - / USR / местные / бен / 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";

Вы можете сделать это с помощью 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

Итак, вы хотите заменить $ APIDIR на / usr / local / bin / perl $ APIDIR? Если это так, ваше регулярное выражение обратное. Вы хотите что-то вроде:

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

Поэтому постарайтесь:

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

Я надеюсь, это то, чем ты был после -