2012-08-14 4 views
1

의 끝이 정의 된 패턴 사이의 문자열을 얻기 :테스트중인 파일이 같은 텍스트 패턴이있을 것이다 라인

내가이 예에서는 "NAME1", "NAME2"와 "NAME3"을 얻을 필요가
name1: function(){ 

}, 
name2: function(){ 

}, 
name3: function(){ 

}, 

. 그래서이 bash는 스크립트를 사용 :

},name1: function 

그러나 물론 텍스트 파일이 방법을 포맷되지 않았습니다 : 패턴처럼 보여줍니다 경우에만 작동하는 것 같다

v1='},' 
v2=': function' 
sed 's/'"$v1"'\(.*\)'"$v2"'/\1/g' test1.js > newfile2 

. 그것은 다음과 같습니다 :

}, 
name1: function 

내가 원하는 것을 성취 할 수있는 정규 표현식에 무엇을 추가해야합니까? 나는 sed

감사

답변

0
sed -n 's/\s*\([^: ]*\): function.*/\1/p' test1.js 
+0

감사를 사용 변경하지 않습니다. 매력처럼 작동합니다. – cube

1
grep function your_file|awk -F":" '{print $1}' 
관련 문제