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
^[[38;1;32mHello^[[39m
^[[38;1;31mUser^[[39m
so I just want to be left with Hello and User
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
My solution:
... | sed $'s/\e\\[[0-9;:]*[a-zA-Z]//g'
The colon is there to support escapes for some old terminal types.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With