2009-10-14 16 views
3

supposons que nous avons cette sortie dans la console bash:Comment analyser les liens en sortie 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" 

Comment créer le nom de fichier (par exemple » ./script/munin_stats:7') lien cliquable (par exemple Ctrl + clic) qui ouvrira le fichier sélectionné dans mon éditeur préféré?

+2

Où avez-vous vu des "liens cliquables" dans bash? –

+0

@Laurence: La plupart des émulateurs de terminaux implémentent une fonctionnalité similaire avec des liens Web dans la sortie de la console. –

+0

même question sur unix.se: http://unix.stackexchange.com/questions/63417/ – sendmoreinfo

Répondre

1

Ceci est plus une fonction de l'émulateur de terminal (par exemple, xterm ou gnome-terminal) que bash. L'émulateur de terminal populaire urxvt (par exemple apt-get install rxvt-unicode) est extensible en Perl, il devrait donc être possible d'écrire un filtre urxvt pour effectuer une sélection et exécuter un éditeur basé sur la sélection. Le script par défaut 'selection-popup' (voir Perl source here) reconnaît déjà quand vous avez un fichier: number pattern sélectionné et offre l'option de le transformer en une commande vi qui ouvrira le fichier sur la bonne ligne.

+0

Oui, ce n'est pas solution Reall: 1. doit cliquer 2. puis cliquez à nouveau sur la dernière dans l'option de menu 3. Retournez à vi 4. mode de commande, entrez en vi 5. coller avec le bouton central de la souris 6. Appuyez sur Entrée il est donc 6 étapes compated à 1 étape requise dans la question initiale. Si vous faites cela 100 fois par jour, cela fait une grande différence. – Rubycut

0

Si vous ne me dérange pas en utilisant l'interface graphique pour afficher la liste que vous pouvez essayer zenity:

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

NB: il pourrait être utile si vous révélez l'émulateur de terminal que vous (préférez) utiliser.