2012-08-14 35 views
1

的最终测试文件将具有文本模式是这样的:获得2种定义模式之间的串线

name1: function(){ 

}, 
name2: function(){ 

}, 
name3: function(){ 

}, 

我需要在这个例子中“NAME1”,“NAME2”和“NAME3” 。 所以用这个bash脚本:

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

这似乎只是工作,如果该图案显示出来,如:

},name1: function 

但当然的文本文件格式不这样。它是这样的:

}, 
name1: function 

我应该添加到正则表达式,我会需要什么? 我不想使用sed

感谢

回答

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

感谢变化。奇迹般有效。 – cube 2012-08-14 23:22:18

1
grep function your_file|awk -F":" '{print $1}'