Saya perlu keluaran grep dengan konteks, warna, dan garis kosong sebagai pemisah grup. Dalam pertanyaan ini , saya belajar cara mendefinisikan custom group-separator
, dan saya telah membangun perintah grep saya seperti ini:
grep --group-separator="" --color=always -A5
tetapi pemisah grup sebenarnya tidak kosong, malah masih berisi kode warna (yaitu [[36m[[K[[m[[K
). Ini karena saya menggunakan --color=always
. Tapi saya perlu warna dalam perintah grep saya, dan saya perlu separator menjadi garis kosong (untuk diproses lebih lanjut)
Bagaimana saya bisa menggabungkan kedua kondisi ini?
--color=always
kecocokan akan mencetak dengan warna, dan jika Anda memiliki--group-separator=""
set ke string kosong Anda akan mendapatkan garis kosong setelah grup yang cocok. Silakan coba lagi meninggalkan--group-separator=""
dengan string kosong, bukan pelarian warna tertentu, dan kemudian jelaskan apa yang tidak berfungsi.od -c
untuk melihat karakter tersembunyi yang muncul di baris kosong.od
.Jawaban:
Jika Anda menggunakan
GREP_COLORS
variabel lingkungan, Anda dapat mengontrol warna tertentu untuk setiap jenis pencocokan.man grep
menjelaskan penggunaan variabel.Perintah berikut akan mencetak pasangan berwarna, tetapi tidak ada pada garis yang memisahkan kelompok, hanya garis kosong. Menyalurkan melalui
od
Anda akan melihat warna melarikan diri sebelum dan sesudah pertandingan, tetapi hanya\n\n
pada pemisahan kelompok.Membuka kunci
se
komponen akan menekan pencetakan warna di pemisah grup.Karena contoh saya di atas menggunakan semua nilai default untuk
GREP_COLORS
yang berikut ini akan berfungsi juga.Jika Anda tidak menggunakan
bash
shell seperti, Anda mungkin perlu mengeksporGREP_COLORS
dulu.sumber
Secara pribadi, saya melakukan itu menggunakan Perl, bukan
grep
. Saya memiliki skrip kecil yang akan menyoroti pola warna tertentu:Jika Anda menyimpannya di jalur sebagai
color
, Anda bisa mendapatkan hasil yang diinginkan dengan menjalankanDengan begitu, skrip mewarnai yang cocok untuk Anda dan Anda dapat mengatakan
grep
untuk tidak menggunakan warna dan menghindari masalah ini.sumber