I have a bash script that runs and outputs to a text file however the colour codes it uses are also included what i\'d like to know is how to remove them from the file, ie
My solution:
... | sed $'s/\e\\[[0-9;:]*[a-zA-Z]//g'
The colon is there to support escapes for some old terminal types.
sed -r "s/\x1B\[(([0-9]{1,2})?(;)?([0-9]{1,2})?)?[m,K,H,f,J]//g" file_name
this command removes the special characters and color codes from the file
these are some of ANSI codes:
ESC[#;#H or ESC[#;#f
moves cursor to line #, column #
ESC[2J
clear screen and home cursor
ESC[K
clear to end of line,
note in case of clear code there is neither number nor semicolon ;
agree with below comment: if the numbers are more than 2 digit kindly use this:
sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g" filename
Does this solve the issue?
$ echo "^[[38;1;32mHello^[[39m" | sed -e 's/\^\[\[[0-9;]\{2,\}m//g'
Hello
cheers!!