我想提取我的应用程序中使用的所有语言密钥。
我有这样的文件:
<?php
echo $localisation->lang('MDP_444'); echo $localisation->lang('MDP_666');
echo $localisation->lang('ERROR', true, false);
我想运行一个返回的命令:
MDP_444
MDP_666
ERROR
我尝试过这样的事情:grep "lang" * -R | perl -n -e 'while(/(\w*lang\((.*)\)\w*)/g) {print $1."\n"}'
但它不起作用。
提前感谢您的帮助。
答案 0 :(得分:1)
使用非贪心量词:
grep "lang" * -R | perl -n -e 'while(/(\w*lang\((.*?)\)\w*)/g) {print $1."\n"}'
here ---^
以及您要查找的子字符串位于$2
而不是$1
,所以:
grep "lang" * -R | perl -n -e 'while(/(\w*lang\((.*?)\)\w*)/g) {print $2."\n"}'
或
grep "lang" * -R | perl -n -e 'while(/\w*lang\((.*?)\)\w*/g) {print $1."\n"}'
答案 1 :(得分:1)
试试这个:
find . -type f -name '*.php' -execdir egrep -o -- "->lang\('[^']*" {} \;
| sed -e "s/^.*->lang('//g"
答案 2 :(得分:0)
如果你有Ruby(1.9 +)
$ ruby -ne '$_.scan( /->lang\(\047(.*?)\047/ ).each{|x| puts x}' file
MDP_444
MDP_666
ERROR