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