我有一个巨大的.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
答案 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