rechercher du texte sur la sortie du terminal

33

J'exécute une application avec la commande $ grails run-appqui imprime le journal dans le terminal comme ci-dessous.

search_text_terminal

Ce que je veux, c'est rechercher un texte particulier (par exemple user authorities) dans ce journal afin de pouvoir vérifier davantage. Une façon d'utiliser Logging Apis pour écrire dans un fichier texte mais je veux le rechercher dans un terminal pour le moment.

J'ai trouvé une question similaire à la façon de faire rechercher un texte directement sur le terminal qui suggère une screencommande, mais je ne sais pas comment ça screenmarche dans ce cas. J'ai essayé $ screen grails run-app mais je ne pouvais pas aller de l'avant.

Je peux voir des listes d’écrans avec

prayag@prayag:~/zlab/nioc2egdelonk$ screen -list
There is a screen on:
    8076.pts-2.prayag   (10/06/2013 12:13:25 PM)    (Attached)
1 Socket in /var/run/screen/S-prayag.
priagupd
la source
Cependant, vous utilisez la commande screen, mais je suggère de la laisser et de l'utilisertmux
PersianGulf
@ MohsenPahlevanzadeh, Bien sûr, je vais essayer tmuxaussi. En entendant beaucoup.
prier

Réponses:

23

Ctrl+a( screenpréfixe de commande par défaut ), [(entrer en copymode) suivi de ?SEARCH_TEXTsemble fonctionner. Appuyez sur npour aller à l'occurrence suivante. À partir de là, vous pouvez copier des mots, des lignes, des régions, etc. pour les transférer dans des fichiers ou les coller ultérieurement (avec Ctrl+a, ]).

entrez la description de l'image ici

priagupd
la source
5
Je ne peux pas faire ça. Donc, vous devez appuyer sur 3 touches à la fois? ctrl, a, [?
Capaj
34
utilisershift+ctrl+f
Ja8zyjits
15

Si vous utilisez Konsole (émulateur de terminal KDE), vous pouvez utiliser Ctrl+ Shift+ F. Cela pourrait également fonctionner dans d'autres émulateurs de terminaux (Linux).

Edit:
@sumit rapporte que cela fonctionne aussi dans Gnome Terminal .
@vdicarlo indique que cela fonctionne également dans XFCE4 Terminal .

Augustin
la source
1
Cela fonctionne également dans l’émulateur de terminal GNOME.
Sumit
Fonctionne sur terminator. Merci!
ryanjdillon
8

Vous pouvez utiliser grepaprès la grailscommande: grails run-app | grep "user authorities". Cependant, vous devrez réexécuter votre commande.

Timo
la source
3
Cette réponse ne devrait pas être rejetée, elle est absolument correcte.
amrx
2
Bien que correct, il est plus utile d’avoir quelque chose à faire après l’impression de la sortie.
Ludwik
@ Baron Je suis même presque sûr que le demandeur voulait dire que la commande est déjà en cours d'exécution, donc cela ne répond pas à la question.
Personne
3

Rediriger la sortie vers un canal et l'envoyer à une grepcommande:

grails run-app | grep user authorities
Soniya Balasubramanian
la source
1

Redirige la sortie de votre commande vers vim-editor: grails run-app | vim -

Plusieurs astuces pour effectuer une recherche à l'aide de Vim:

  • type / puis entrez votre chaîne de rechercheuser authorities
  • type :set hlsearch pour mettre en évidence les résultats de la recherche
  • tapez npour rechercher en avant ouShift+n pour rechercher en arrière
  • rappelez-vous que vous êtes dans l'éditeur maintenant, donc si vous avez accidentellement modifié certaines modifications, vous pouvez revenir en arrière, appuyez simplement ESCune fois sur pour quitter le mode édition, puis appuyez suru pour annuler une édition.
  • type :q! pour quitter Vim et ignorer vos résultats de recherche
  • vous pouvez faire ce que vous voulez :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
graceman9
la source
appris quelque chose!
oneindelijk