Perl one liner用于搜索和打印文件中的特定值

时间:2011-05-06 13:44:16

标签: perl

需要一个单行的Perl脚本,它将打开一个文件并返回一个字符串。 我使用Perl脚本为我的开发人员编译c#代码。 解决方案文件project.sln文件可能包含:

  • Visual Studio 2005
  • Visual Studio 2008
  • Visual Studio 2010

根据VS版本的不同,我需要加载适当的VS环境并继续编译代码。

2 个答案:

答案 0 :(得分:1)

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”。

答案 1 :(得分:0)

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

或者您需要的不是版本吗?