我不知道Perl,但现在我需要更正Perl脚本,所以我希望你能帮助我。 我有一个Perl脚本,允许处理具有下一个名称结构的文件:CCCCNNNN.16X,其中CCCC - 4个字符,NNNN - 4个数字,X可能是“o”或“n”,例如bshm1930.16o。 此脚本为Linux命令行创建命令,但它不会选择正确的文件。据我了解,问题出现在这部分代码中:
# 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,谢谢
答案 0 :(得分:1)
替换中的正则表达式模式与16
不匹配。
s/\.([90][0-9])o/.$1n/;
这将匹配九或零后跟一个任意数字,后跟一个o,然后将其替换为点,两位数和n
。< / p>
请参阅https://regex101.com/r/kA0zR5/2上的说明。