2016-07-14 2 views
0

나는 펄을 모르지만 지금은 펄 스크립트를 수정해야하므로, 당신이 나를 도울 수 있기를 바랍니다. CCCC-4 문자, NNNN-4 숫자 및 X가 "o"또는 "n"일 수있는 CCCCNNNN.16X의 이름 구조 (예 : 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 반환합니다. 16o가 아닌 16n 확장자를 가진 파일을 얻으려면 어떻게해야합니까? 미리 감사드립니다. 16 일치하지 않는

simbabque, 당신

답변

1

에게 대체의 정규 표현식 패턴을 감사합니다.

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

는 9 또는 오 뒤에 한 숫자에 선행 제로 다음 도트 두 자릿수 및 n로 교체 일치한다.

https://regex101.com/r/kA0zR5/2에 대한 설명을 참조하십시오.