Saya menggunakan opsi --colour dari grep banyak, tetapi saya sering menggunakan lebih sedikit juga. Bagaimana saya bisa menyalurkan hasil grep menjadi lebih sedikit dan tetap mempertahankan pewarnaannya. (Atau mungkinkah itu?)
grep "search-string" -R * --colour | less
EDIT :
Saya mencari solusi langsung atau apa pun yang setara dengan ini.
*
harus dilakukan Dari halaman manual grep:*: The preceding item will be matched zero or more times.
Tapi aku masih tidak mengerti ..! @JeremyPowellJawaban:
Ketika Anda menjalankannya,
grep --color
itu tersiratgrep --color=auto
yang mendeteksi apakah output adalah terminal dan jika demikian memungkinkan warna. Namun, ketika mendeteksi sebuah pipa, ia menonaktifkan pewarnaan. Perintah berikut:Akan selalu mengaktifkan pewarnaan dan mengabaikan deteksi otomatis, dan Anda akan mendapatkan penyorotan warna
less
.EDIT: Meskipun menggunakan hanya
less
berfungsi untuk saya, mungkin versi yang lebih lama memerlukan-R
bendera untuk menangani warna, seperti yang disarankan di sini.sumber
less -R
untuk pengkodean warna untuk ditafsirkan dengan kurang tepatless
, mungkin tergantung versi.grep pattern file | grep -v badpattern | grep --colour=always pattern | less -R
, yang memenuhi kebutuhan saya dengan sempurna. (Terima kasih lagi!)less
dan karena itu melewatkan kesempatan untuk memilikicolorless
alat khusus . Untuk namanya saja sudah seharusnya dilakukan! Saya mungkin harus menulis tambalan yang memanggil -R secara otomatis ketika biner dijalankan sebagaicolorless
.$LESS
mengatur dengan-R
.Anda dapat meletakkan ini di
.bashrc
file Anda :atau buat alias seperti ini:
dan Anda perlu menggunakan
-R
opsi untukless
, seperti yang ditunjukkan oleh sanasumber
grep
denganGREP
, atau mengganti--color
opsi secara manual.Dalam kasus seperti ini, saya lebih suka untuk benar-benar membuat file sh kecil dan meletakkannya di
/usr/local/bin
.Saya biasanya menggunakan
grep
cara rekursif padapwd
, jadi itulah skrip pribadi saya:Dan kemudian saya baru saja menyalinnya sebagai
/usr/local/bin/g
(ya, saya sering menggunakannya)sumber
g() { grep --color=always -r "$@" . | less -R }
bekerja secara identik dan mungkin akan memberikan (lebih baik) kinerja yang lebih baik.Jangan alias "grep", lebih baik untuk alias "kurang" yang tidak pernah digunakan oleh kerang. Dalam Anda
.bashrc
hanya menempatkan:alias less="less -r"
.sumber
grep --color=always
danless -R
. Perhatikan bahwa grep hanya tahu itu sedang disalurkan ke proses lain dan--color=auto
opsi hanya menggunakan informasi ini untuk memutuskan apakah akan menghasilkan warna atau tidak.less
opsi-r
berbeda dari-R
. Mungkin-R
lebih aman.less
contoh yang sudah menggunakan opsi `--color '.less
mendukung$LESS
variabel lingkungan. Jadi, bukannya alias,export LESS='-R'
mungkin lebih disukai.Saya harus lari
dengan flag -r setelah kurang , agar ini berjalan.
sumber
*
harus dilakukan Dari halaman manual grep:*: The preceding item will be matched zero or more times.
Tapi aku masih tidak mengerti ..!