Bir REGEX'e göre çizgi rengini değiştirmek için terminal STDOUT / STDERR'yi değiştirin


0

Mümkün mü? Ulaşmak istediğim şey, mevcut proje dizinine giden yolla eşleşen herhangi bir çizgiyi vurgulamak ve diğer çıktıları el değmeden bırakmak için birim testlerini (Python) yaparken. Genellikle bunlar aradığım hat, bu yüzden hata ayıklama amaçları için gerçekten yararlı olacak. Desen eşleştirme kısmı iyi olmalı, sadece çıktıyı değiştirmeyi nasıl yapacağımı bilmiyorum (testler Burun ile gerçekleştiriliyor)

Yanıtlar:


1

Emrini yerine getirebilirsin grep -C10000 -P --color pattern (veya sizin durumunuzda, grep -C10000 -P --color ".*$PWD.*" ).

Örneğin:

cat /proc/cpuinfo | grep -C10000 -P --color 'GHz|MHz'
  • Evet, bu işe yaramaz bir kedi kullanımıdır.
  • -C10000 grep'e 10000 satır içerik yazdırmasını söyler. Grep'in tüm satırları yazdırması için yeterince büyük bir sayı kullanın.
  • kullanım |& STDERR’i de yakalamak istiyorsan

1
Eşleşmeniz gerekebilir "^.*$PWD/.*$" Geçerli dizini içeren tüm satırı vurgulamak istiyorsanız.
AFH

Doğru, cevap güncellendi. İhtiyaç yok ^ ve $ ancak. Ben de son noktayı kaldırdım.
user49740

2
Ayrıca kullanabilirsiniz egrep --color "$|^.*$PWD/.*$" -C10000 kullanımından kaçınmak için tüm çizgileri kavramak için. Bu yoldan egrep tüm satırları bulabilir ve bulunanları işaretler. Ancak bir EOL ($) 'görünür' olmadığından, yalnızca gerçek arama şablonu renklendirilir.
Lambert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.