cari teks pada output terminal

33

Saya menjalankan aplikasi dengan perintah $ grails run-appyang mencetak terminal masuk seperti di bawah ini.

search_text_terminal

Yang saya inginkan adalah mencari teks tertentu (katakanlah user authorities) di log ini sehingga saya dapat memverifikasi lebih lanjut. Salah satu cara menggunakan Logging Apis untuk menulis dalam file teks tapi saya ingin mencarinya di terminal saat ini.

Saya menemukan pertanyaan serupa tentang cara melakukan pencarian teks di terminal secara langsung yang menunjukkan screenperintah, tetapi saya tidak tahu bagaimana cara screenkerjanya dalam kasus ini. Saya mencoba $ screen grails run-app tetapi tidak bisa bergerak maju.

Saya dapat melihat daftar layar dengan

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.
prayagupd
sumber
Namun Anda menggunakan perintah layar, tetapi saya sugggest tinggalkan dan gunakantmux
PersianGulf
@MohsenPahlevanzadeh, Tentu saya akan mencoba tmuxjuga. Mendengar itu banyak.
prayagupd

Jawaban:

23

Ctrl+a( screenawalan perintah default ), [(masuk copymode) diikuti oleh ?SEARCH_TEXTtampaknya berfungsi. Tekan nuntuk pergi ke kejadian berikutnya. Dari sana, Anda dapat menyalin kata, baris, wilayah, dll untuk dibuang ke file atau tempel nanti (dengan Ctrl+a, ]).

masukkan deskripsi gambar di sini

prayagupd
sumber
5
Saya tidak bisa melakukan ini. Jadi, Anda perlu menekan 3 tombol sekaligus? ctrl, a, [?
Capaj
34
useshift+ctrl+f
Ja8zyjits
15

Jika Anda menggunakan Konsole (emulator terminal KDE), Anda dapat menggunakan Ctrl+ Shift+ F. Ini mungkin bekerja juga di emulator terminal (Linux) lainnya.

Sunting:
@ laporan melaporkan ini berfungsi juga di Terminal Gnome .
@vdicarlo melaporkan ini juga berfungsi di Terminal XFCE4 .

Augustin
sumber
1
Ini berfungsi di emulator terminal GNOME juga.
Sumit
Bekerja terminator. Terima kasih!
ryanjdillon
8

Anda dapat menggunakan grepsetelah grailsperintah: grails run-app | grep "user authorities". Namun, Anda harus menjalankan kembali perintah Anda.

Timo
sumber
3
Jawaban ini tidak boleh ditolak, itu benar sekali.
amrx
2
Meskipun benar, lebih bermanfaat memiliki sesuatu yang dapat dilakukan setelah hasilnya telah dicetak.
Ludwik
@ Harun Aku bahkan cukup yakin bahwa si penanya bermaksud menyiratkan bahwa perintah sudah berjalan, jadi ini tidak menjawab pertanyaan.
Tidak ada yang
3

Redirect output ke pipa dan kirimkan ke grepperintah:

grails run-app | grep user authorities
Soniya Balasubramanian
sumber
1

Redirect output dari perintah Anda ke vim-editor: grails run-app | vim -

Beberapa tips untuk pencarian menggunakan Vim:

  • ketik /lalu masukkan string pencarian Andauser authorities
  • ketik :set hlsearchuntuk menyorot hasil pencarian
  • ketik nuntuk mencari maju atau Shift+nuntuk mencari mundur
  • ingat Anda berada di editor sekarang, jadi jika Anda melakukan beberapa perubahan secara tidak sengaja Anda dapat kembali, cukup tekan ESCsekali untuk keluar dari mode edit, lalu tekan uuntuk membatalkan satu edit
  • ketik :q!untuk keluar dari Vim dan buang hasil pencarian Anda
  • Anda dapat melakukan apa pun yang Anda inginkan :-D http://vim.wikia.com/wiki/Vim_Tips_Wiki
graceman9
sumber
belajar sesuatu!
oneindelijk