CentOS 4.4'te, bir metin dosyasından kaçış dizilerini nasıl kaldırabilirim?


17

Bir metin dosyasından renk kodu kaçış dizilerini çıkarmak için hangi komutu kullanabilirim? İdeal olarak geçebileceğim bir şey. Renkli metin rainbow.txt bir grup ile bir dosya varsa, boşluğa gider:

cat rainbox.txt | *something* > plain.txt

CentOS 4.4'te bash üzerinde çalışıyorum.

Yanıtlar:


30

Deneyin:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

3 cevaptan bu işe yarayan tek cevaptı.
slm

4

cat rainbox.txt | col -b > plain.txt


Neden bu konuda bir oylama yok? Benim için çalışan tek çözüm! Ve bu da çok basit!
phunehehe

3
Çünkü benim için çalışmıyor.
lzap

6
Bu sadece kaçış karakterlerinden kurtulur, argümanlarından değil.
Aaron

1

Kaçamazsınız, çünkü kaçış dizisi genel olarak iyi tanımlanmamıştır - kaçış dizilerinizin ne tür bir terminal için tasarlandığını bilmeniz gerekir. Sorunu "ANSI renk dizilerini soymak" (oldukça olası bir varsayım) ile sınırlamak istiyorsanız, şöyle bir şey:

sed 's/\o033\[[0-9]*;[0-9]*m//g'

Hile yapmalı.


1

Aşağıdakiler [Xm , [X; m , [X; Ym ve [X; Y; Zm) olasılıklarını (bunlardan bazıları teknik olarak yanlış olabilir, ancak çalışır ve vahşi doğada görülmüştür):

sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'
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.