Saya memiliki beberapa skrip yang menghasilkan keluaran dengan warna dan saya perlu menghapus kode ANSI.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
Outputnya adalah (dalam file log):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
Saya tidak tahu bagaimana meletakkan karakter ESC di sini, jadi saya menempatkannya @
.
Saya mengubah skrip menjadi:
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
Tapi sekarang memberi saya (dalam file log):
java (pid 12321) is running...@[60G[ OK ]
Bagaimana saya juga bisa menghapus ini ' @[60G
?
Mungkin ada cara untuk sepenuhnya menonaktifkan pewarnaan untuk seluruh skrip?
strip-ansi
: github.com/chalk/strip-ansi .