поиск текста на выходе терминала


33

Я запускаю приложение с командой, $ grails run-appкоторая печатает вход в терминал, как показано ниже.

search_text_terminal

То, что я хочу, это поиск определенного текста (скажем user authorities) в этом журнале, чтобы я мог проверить дальше. Один из способов использовать Logis Apis для записи в текстовый файл, но я хочу найти его в терминале в данный момент.

Я нашел похожий вопрос в том, как сделать поиск текста на терминале напрямую, который предлагает screenкоманду, но я понятия не имею, как screenработает в этом случае. Я пытался, $ screen grails run-app но не мог двигаться вперед.

Я могу видеть списки экранов с

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.

как бы вы ни использовали экранную команду, но я рекомендую оставить ее и использоватьtmux
PersianGulf

@MohsenPahlevanzadeh, конечно, я тоже попробую tmux. Слышал об этом много.
prayagupd

Ответы:


23

Ctrl+a( screenпрефикс команды по умолчанию ), [(введите copyрежим), а затем, ?SEARCH_TEXTкажется, работает. Нажмите, nчтобы перейти к следующему событию. Оттуда вы можете скопировать слова, строки, регионы и т. Д., Чтобы поместить их в файлы или вставить позже (с помощью Ctrl+a, ]).

введите описание изображения здесь


5
Я не могу этого сделать. Таким образом, вам нужно нажать 3 клавиши одновременно? ctrl, a, [?
Капай

34
использованиеshift+ctrl+f
Ja8zyjits

15

Если вы используете Konsole (эмулятор терминала KDE), вы можете использовать Ctrl+ Shift+ F. Это может работать и в других (Linux) терминальных эмуляторах.

Редактировать:
@sumit сообщает, что это работает и в Gnome Terminal .
@vdicarlo сообщает, что это также работает в терминале XFCE4 .


1
Это работает и в эмуляторе терминала GNOME.
Саммит

Работает на terminator. Благодарность!
ryanjdillon

8

Вы можете использовать grepпосле grailsкоманды: grails run-app | grep "user authorities". Тем не менее, вам придется повторно запустить вашу команду.


3
Этот ответ не должен быть отклонен, его абсолютно правильно.
amrx

2
Хотя это правильно, более полезно иметь что-то, что можно сделать после того, как вывод уже напечатан.
Людвик,

@ Барон Я даже почти уверен, что спрашивающий подразумевал, что команда уже запущена, так что это не отвечает на вопрос.
Никому


1

Перенаправить вывод вашей команды в vim-editor: grails run-app | vim -

Несколько советов по поиску с использованием Vim:

  • введите и /введите строку поискаuser authorities
  • введите, :set hlsearchчтобы выделить результаты поиска
  • введите nдля поиска вперед или Shift+nдля поиска назад
  • помните, что вы сейчас в редакторе, поэтому, если вы случайно сделали некоторые изменения, вы можете вернуться, просто нажмите ESCодин раз, чтобы выйти из режима редактирования, затем нажмите, uчтобы отменить одно редактирование
  • введите, :q!чтобы выйти из Vim и отменить результаты поиска
  • Вы можете делать все, что вы хотите :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki

чему-то научился!
oneindelijk
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.