Perl один вкладыш для поиска и печати определенного значения из файла - PullRequest
0 голосов
/ 06 мая 2011

Нужен однострочный скрипт Perl, который откроет файл и вернет строку.Я использую скрипт Perl для компиляции кода на C # для моих разработчиков.Файл проекта project.sln может содержать:

  • Visual Studio 2005или
  • Visual Studio 2008или
  • Visual Studio 2010

В зависимости от версии VS, мне нужно загрузить соответствующую среду VS и перейти к компиляции кода.

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Perl-версия grep, за исключением того, что нужно только найти первую строку, содержащую 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;

Я полагаю, что это не соответствует критерию «одной строки». Если вы отказываетесь от состояния выхода и живете с несколькими номерами версий, если строка появляется несколько раз, вы можете сжать ее до:

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

Обратите внимание, что я настроил вас на проблему Y3K с регулярным выражением, которое я использую - вам придется решить, заменить ли 2 другим '\d'.

0 голосов
/ 06 мая 2011
type project.sln | perl -pe "s/Visual Studio //"

Или вам нужно что-то кроме версии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...