Bash 获取两个已定义模式之间的字符串,并以行尾结束
被测文件将具有如下文本模式:Bash 获取两个已定义模式之间的字符串,并以行尾结束,bash,shell,unix,sed,Bash,Shell,Unix,Sed,被测文件将具有如下文本模式: name1: function(){ }, name2: function(){ }, name3: function(){ }, }, name1: function 在本例中,我需要获得“name1”、“name2”和“name3”。 所以使用了这个bash脚本: v1='},' v2=': function' sed 's/'"$v1"'\(.*\)'"$v2"'/\1/g' test1.js > newfile2 这似乎只有在模式显
name1: function(){
},
name2: function(){
},
name3: function(){
},
},
name1: function
在本例中,我需要获得“name1”、“name2”和“name3”。
所以使用了这个bash脚本:
v1='},'
v2=': function'
sed 's/'"$v1"'\(.*\)'"$v2"'/\1/g' test1.js > newfile2
这似乎只有在模式显示为以下情况时才起作用:
},name1: function
但是,文本文件当然不是这样格式化的。是这样的:
name1: function(){
},
name2: function(){
},
name3: function(){
},
},
name1: function
我应该在正则表达式中添加什么来实现我所需要的?
我不想改变使用sed
谢谢