2011-08-26 4 views
0

내 응용 프로그램에 사용 된 모든 언어 키를 추출하고 싶습니다.Bash는 정규식에서 파일의 일부 정보를 추출합니다

MDP_444 
MDP_666 
ERROR 

내가 좋아하는 일을 시도 :

<?php 

echo $localisation->lang('MDP_444'); echo $localisation->lang('MDP_666'); 

echo $localisation->lang('ERROR', true, false); 

내가 돌아 명령을 실행하려면 :

나는 다음과 같은 파일이 grep "lang" * -R | perl -n -e 'while(/(\w*lang\((.*)\)\w*)/g) {print $1."\n"}'을하지만,하지 작업을했다.

미리 도움을 주셔서 감사합니다.

답변

1

이 시도 :

find . -type f -name '*.php' -execdir egrep -o -- "->lang\('[^']*" {} \; 
    | sed -e "s/^.*->lang('//g" 
+0

끝내주는, 이것은 굉장하다! – julesbou

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"}' 
+0

'... | (. *?) \) \ w */g'에 대한 perl -nle '인쇄는 충분하지만, 나는 그'\ w *'인스턴스를 정말로 신뢰하지 않는다. – tchrist

0

루비가있는 경우 (1.9+)

$ ruby -ne '$_.scan(/->lang\(\047(.*?)\047/).each{|x| puts x}' file 
MDP_444 
MDP_666 
ERROR 
관련 문제