2016-06-08 54 views
0

我有一个字符串,它看起来像这样:匹配文件和行号的sed

app/views/pages/_my_events_for_ba.html.erb:11: ba_mbn_programs = Program.ba_and_managed_bar.all(:conditions => "user_programs.user_id = #{current_user.id} and brand_id = #{brand.id}", :order => :name, :joins => [:user_programs], :select => "distinct programs.*") 

我试图孤立行号11和文件名app/views/pages/_my_events_for_ba.html.erb这样我就可以通过这些参数打开VIM vim +11 app/views/pages/_my_events_for_ba.html.erb

但是我无法获得sed的匹配,就像我想要的那样工作。我试图在作品Vim的正则表达式,但不与SED:

sed 's/\(.*\):\([0-9]\+\).*/\1 \2/p' 
+0

'-E'不一个'sed'选项 – hek2mgl

+0

它适用于OSX,我相信这是与'-r' – Anthony

+0

适合我的bsd。你有一个奇怪的版本'sed'? –

回答

4

您可以使用awk

awk -F: '{print $1, $2}' 

一个正则表达式的解决办法是这样的:

sed -r 's/([^:]*):([0-9]*):.*/\1 \2/'