2016-07-14 111 views
0

我不知道Perl,但现在我需要更正Perl脚本,所以我希望你能帮助我。 我有一个Perl脚本,它允许使用下一个名称结构来处理文件:CCCCNNN.16X,其中CCCC - 4个字符,NNNN - 4数字和X可能是“o”或“n”,例如bshm1930.16o 。 此脚本为Linux命令行创建命令,但不会选择正确的文件。据我所知,这个问题是在这部分代码:在Perl中需要帮助

# add ephemeris file 
$ephfile = $rawfile; 
$ephfile =~ s/$stationID/bshm/; 
$ephfile =~ s/\.([90][0-9])o/.$1n/; 
push @opt, "--nav $ephfile"; 

在这里,我需要选择类型的文件* .16n,但代码返回* .16o。我应该更改以获取16n扩展名而不是16o的文件? 提前谢谢!

simbabque,谢谢

回答

1

在替代正则表达式模式不匹配16

s/\.([90][0-9])o/.$1n/; 

这将匹配九或零接着是一个任意数,接着是O,然后用点,所述两个数字和n替换它。

请参阅https://regex101.com/r/kA0zR5/2的说明。