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
'.