Question: I have some script that produces output with colors and I need to remove the ANSI codes.

```
#!/bin/bash

exec > >(tee log)   # redirect the output to a file but keep it on stdout
exec 2>&1

./somescript

```

The output is (in log file):

```
java (pid  12321) is running...@[60G[@[0;32m  OK  @[0;39m]

```

I didn't know how to put the ESC character here, so I put `@` in its place.

I changed the script into:

```
#!/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"

```

But now it gives me (in log file):

```
java (pid  12321) is running...@[60G[  OK  ]

```

How can I also remove this '`@[60G`?

Maybe there is a way to completely disable coloring for the entire script?

Answer: 
Hmm, not sure if this will work for you, but 'tr' will 'strip' (delete) **control codes** - try:

```
./somescript | tr -d '[:cntrl:]'

```
my contribution:

```
./somescript | sed -r "s/\\x1B[\\x5d\[]([0-9]{1,3}(;[0-9]{1,3})?(;[0-9]{1,3})?)?[mGK]?//g"

```