2016-07-14 12 views
0

私はPerlを知らないけど、今はPerlスクリプトを修正する必要があるので、助けてください。 CCCC-4文字、NNNN-4の数字とXが "o"または "n"であるCCCCNNNN.16Xという名前の次の構造を持つファイルを処理できるPerlスクリプトがあります。例えば、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ではなく16nの拡張子を持つファイルを取得するにはどうすればよいですか? ありがとうございます!

simbabqueは、あなたの置換の正規表現パターンが16と一致しない

答えて

1

ありがとうございました。

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

これは、は9またはO、続いて1任意の数、続いてゼロ、その後ドット、二桁、およびnに置き換え一致します。

https://regex101.com/r/kA0zR5/2の説明を参照してください。