Di CentOS 4.4, bagaimana saya bisa menghapus urutan melarikan diri dari file teks?

17

Perintah apa yang dapat saya gunakan untuk menghapus urutan kode warna dari file teks? Idealnya, sesuatu yang bisa saya lakukan melalui pipa. Jika saya memiliki file dengan sekelompok rainbow.txt teks berwarna, apa yang ada di celah:

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

Saya bekerja di bash pada CentOS 4.4.

kdt
sumber

Jawaban:

30

Mencoba:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
rkthkr
sumber
Dari 3 jawaban ini hanya satu-satunya yang berhasil.
slm
4

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

Vi.
sumber
Mengapa tidak ada upvote dalam hal ini? Satu-satunya solusi yang bekerja untuk saya! Dan itu sangat sederhana juga!
phunehehe
3
Karena itu tidak berhasil untuk saya.
lzap
6
Ini hanya menghilangkan karakter pelarian, bukan argumen mereka.
Aaron
1

Anda tidak bisa, karena apa itu urutan pelarian tidak didefinisikan dengan baik secara umum - Anda perlu tahu seperti apa terminal urutan pelarian Anda dirancang. Jika Anda ingin membatasi masalah untuk "menghapus urutan warna ANSI" (asumsi yang cukup mungkin), sesuatu seperti:

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

Sebaiknya lakukan triknya.

womble
sumber
1

Berikut ini akan menangkap kemungkinan [Xm , [X; m , [X; Ym , dan [X; Y; Zm (beberapa di antaranya mungkin secara teknis salah, tetapi mereka bekerja dan terlihat di alam liar):

sed -r 's|\x1B\[[0-9]{1,2};?(;[0-9]{1,2}){,2}m||g'
linux_sa
sumber