我正在尝试通过ssh运行Perl正则表达式,但是却收到错误消息“变量名必须包含字母数字字符。”

我要执行的Perl命令是

perl -p -i '.backup'  -e ' if ( m/\[MyTag\]/../^$/ ) { s/Item\d+/Item150/ ; }' ~/myFile.txt 

我正在使用的SSH命令是
ssh user1@host1 -n " here I'm placing my perl command" 

我确实尝试添加\以避免由当前shell转换$符号,以及将ssh duple quota更改为单个,并在perl命令中添加\',但是我总是得到上面的错误或不匹配的错误

我确实在下面尝试
ssh user1@host1 -n "perl -p -i '.backup'  -e ' if ( m/\[MyTag\]/../^$/ ) { s/Item\d+/Item150/ ; }' ~/myFile.txt" 
 
ssh user1@host1 -n "perl -p -i '.backup'  -e ' if ( m/\[MyTag\]/../^\$/ ) { s/Item\d+/Item150/ ; }' ~/myFile.txt" 
 
ssh user1@host1 -n 'perl -p -i \'.backup\'  -e \' if ( m/\[MyTag\]/../^$/ ) { s/Item\d+/Item150/ ; }\' ~/myFile.txt' 

也有\ $以及\\ $和更多

请您参考如下方法:

让计算机负责报价:

#!/usr/bin/perl 
use Net::OpenSSH; 
 
my $ssh = Net::OpenSSH->new('user1@host1'); 
$ssh->system('perl', '-p', '-i', '.backup', '-e', <<PERL_CODE, \'~/myFile.txt'); 
if (m/\[MyTag\]/ .. m/^$/) { 
    s/Item\d+/Item150/; 
} 
PERL_CODE 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!