How to remove the decorate colors characters in bash output?

后端 未结 2 1693
你的背包
你的背包 2021-01-13 17:04

A console program (translate-shell) has an output with colors and uses special decorate characters for this: ^[[22m, ^[[24m, ^[[1m... and so on.

I\'d like to remove

相关标签:
2条回答
  • 2021-01-13 17:33

    You have multiple options:

    • https://unix.stackexchange.com/questions/14684/removing-control-chars-including-console-codes-colours-from-script-output
    • http://www.commandlinefu.com/commands/view/3584/remove-color-codes-special-characters-with-sed
    • and as -no-ansi as pointed out by Jens in other answer

    EDIT

    The solution from commandlinefu does the job pretty well:

    sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
    

    The solution from unix.stackexchange might be better but is much longer and so you would want to create a separate script file because it is so long instead of just doing a shell one-liner.

    0 讨论(0)
  • 2021-01-13 17:34

    I found this in the manual about the use of ANSI escape codes:

    -no-ansi
        Do not use ANSI escape codes.
    

    So you should add this option when starting the program.

    0 讨论(0)
提交回复
热议问题