bash grep查找java声明

时间:2010-05-21 01:56:21

标签: regex bash grep

我有一个巨大的.java文件,我想找到给定className的所有声明的对象。我认为声明将始终具有以下签名:

className objName;

className objName =

className objName =

有人可以建议我找到这些签名的grep模式。我有以下(不完整):

    cat $rootFile | grep "$className " 

示例:

如果输入文件是:

Policy pol1;
Policy pol2 ;
Policy   pol3  ;
Policy pol4=new Policy();
Policy pol5 = new Policy();
Policy pol6= new Policy();

我想提取以下列表:

pol1
pol2
pol3
pol4
pol5
pol6

1 个答案:

答案 0 :(得分:3)

可能perl可以在这里提供帮助

cat $rootFilename | perl -pe 's/Policy[ \t]+([a-zA-Z0-9_]+)[ \t]*[;=].*/\1/g'

使用sed,也可以这样做

sed -e 's/Policy[ \t]\+\([a-zA-Z0-9_]\+\)[ \t]*[;=].*/\1/g' $rootFilename