如何在perl脚本中查找/替换变量

时间:2015-07-29 07:50:32

标签: regex perl sed

在我的perl脚本中,我有一个字符串变量,其中包含''。我必须用'20150101'之类的正确日期替换它。我尝试了下面但它期望变量作为文件。你能指出这里有什么问题吗?

print_val

2 个答案:

答案 0 :(得分:3)

您不需要sed,它适用于文件内容。你可以这样做:

#!/usr/bin/perl
use strict;
use warnings;

my $name="FILE_NAME_<DATE>.txt";
my $findDT="<DATE>";
my $dt="20150101";

# First make a copy of your original variable
my $realFileName = $name;

# Then, replace the variable
$realFileName =~ s/$findDT/$dt/;

print "$name\n";
print "$realFileName\n";

如评论中所述,请记住始终use strict;use warnings;。他们没有任何成本,而且帮助很大!

答案 1 :(得分:3)

我不知道你为什么使用sed。将脚本更改为此。

  

r - 执行非破坏性替换并返回新值

检查here

#!/usr/bin/perl
use strict;
use warnings;

my $name="FILE_NAME_<DATE>.txt";
my $findDT="<DATE>";
my $dt="20150101";

my $changedFileName = $name=~ s/$findDT/$dt/r;

print "Before Change: $name \n";
print "After Change: $changedFileName \n";