2009-10-14 88 views
3

我們假定我們有這個輸出在bash控制檯:在bash輸出如何解析鏈接

$ findgrep RAILS_ENV         
./script/munin_stats:7:RAILS_ENV = ENV['RAILS_ENV'] || "development" 
./script/munin_stats:12: dbconfig = dbhash[RAILS_ENV]    
./lib/tasks/juggernaut.rake:4: @rails_env = ENV["RAILS_ENV"] || "development"        
./lib/tasks/cruise.rake:19: ENV['RAILS_ENV'] = 'test'              
./lib/tasks/populate.rake:15:  dumper = MysqlDumper.new(ActiveRecord::Base.configurations[RAILS_ENV])  
./lib/tasks/populate.rake:21:  dumper = MysqlDumper.new(ActiveRecord::Base.configurations[RAILS_ENV])  
./lib/tasks/populate.rake:29:  RAILS_ENV = "test" 

如何創建的文件名(例如」 ./script/munin_stats:7' )可點擊的鏈接(例如Ctrl +點擊),它將在我最喜歡的編輯器中打開選定的文件?

+2

你在哪裏見過bash中的「可點擊鏈接」? – 2009-10-14 10:07:42

+0

@Laurence:大多數終端仿真程序在控制檯輸出中實現與網絡鏈接相似的功能。 – 2009-10-14 10:10:33

+0

關於unix.se的相同問題:http://unix.stackexchange.com/questions/63417/ – sendmoreinfo 2016-02-13 17:04:22

回答

1

這更多的是終端模擬器(例如,xterm或gnome-terminal)的功能而不是bash。受歡迎的urxvt終端仿真程序(例如apt-get install rxvt-unicode)在Perl中是可擴展的,所以應該可以編寫urxvt過濾器以根據選擇執行選擇並執行編輯器。

默認的「選擇彈出式」腳本(請參閱Perl source here)已經識別出您選擇了文件:數字模式並提供了將其轉換爲vi命令的選項,該命令將在右側打開文件。

+0

是的,它不是reall解決方案: 1.必須單擊 2.然後在菜單選項再次單擊去年 3.切換回到Vi, 4.在vi 5膏鼠標中鍵進入命令模式 6.按enter鍵 所以這6個步驟compated原問題需要1步。如果你每天這樣做100次,它就會有很大的不同。 – Rubycut 2012-07-29 09:38:41

0

如果你不介意使用GUI顯示列表,你可以嘗試zenity:

vi `findgrep RAILS_ENV * | cut -f 1 -d : | zenity --list --column Files` 

注意:如果你顯示你(喜歡)使用的終端仿真器也可能是有用的。