2011-05-06 8 views
0

파일을 열고 문자열을 반환하는 하나의 liner Perl 스크립트가 필요합니다. Perl 스크립트를 사용하여 개발자를위한 C# 코드를 컴파일합니다. 솔루션 파일 project.sln 파일이 포함될 수 있습니다Perl 파일에서 특정 값을 검색하여 인쇄하는 하나의 라이너

  • 비주얼 스튜디오 2005
    또는
  • 비주얼 스튜디오 2008
    또는
  • 비주얼 스튜디오 2010

은 VS 버전에 따라 적절한 VS 환경을로드하고 코드를 컴파일해야합니다.

답변

1

grep의 Perl 버전. 단, Visual Studio 20xx가 포함 된 첫 번째 줄만보고 20xx 값을 반환하면됩니다.

#!/usr/bin/env perl 
while (<>) 
{ 
    if (m/Visual Studio (2\d\d\d)\b/) 
    { 
     print "$1\n"; 
     exit 0; 
    } 
} 
exit 1; 

'1 라이너'기준을 충족시키지 못한다고 가정합니다. 당신이 출구 상태를 포기하고 문자열이 여러 번 나타나는 경우 여러 버전 번호와 함께 살고있는 경우에 그 압축 할 수 있습니다 : 내가 사용하는 정규식과 Y3K 문제에 대한 당신을 설정 한

perl -n -e 'print $1 if (m/Visual Studio (2\d\d\d)\b/);' project.sln 

주 - 2를 다른 것으로 대체 할 것인지를 결정해야합니다. '\d'.

+0

"Y3K 문제"- 이제 낙천주의. – Ashley

+1

@Ashley : 소프트웨어가 얼마나 오래 지속되는지 놀랄 것입니다! 나는 5000-01-02에 Y10K 문제에 대한 작업을 시작할 계획이다. (또는 정확하게, 나는 그 전에 작업을 시작할 생각이 없다.) 나는 그것이 나의 ToDo 목록의 맨 위에 결코 도달하지 않을지도 모른다라고 생각한다. –

+0

심지어'perl -n -e '$ 1을 인쇄 할 경우 (m/foo /);' file.txt'는'foo'를 포함하고 있습니다. – NHDaly

0
type project.sln | perl -pe "s/Visual Studio //" 

아니면 다른 버전이 필요합니까?

관련 문제