-1

我试图使用 sed 命令在我的文本文件中查找错误并将其替换为其他内容。

就像我之前说的 sed 非常适合我,而无需在文本中使用双引号,这 -> ~ 也不会像你建议的那样工作,除非我用错了。Perl 脚本

#!/usr/bin/perl

use strict;
use warnings;
my @array = (
"^OPTIONS.*\-X",
"^OPTIONS.*\-x"
);

my $Replace_To = 'OPTIONS="-u hello:bye -p /var/run/myfile.pid -g"'
chomp $Replace_To;
my strCommand;
my $array;

sub main
{
   my $hostname = `hostname -s`;
   chomp $hostname;
   foreach $array(@array)
   {
       my $execute = `awk '/$array/' /tmp/file.txt
       if($execute)
       {
          chomp $execute;
          $strCommand = `sed -i 's/$execute/$Replace_To/g' /tmp/file.txt`;
       }
   }

}
&main();
4

1 回答 1

1

我为我的问题找到的解决方案非常简单:只需将 \ 放在我在文本中的每个 / 之前。

于 2019-11-20T13:17:33.230 回答