Încerc să folosesc bash pentru a elimina secvențele de evadare de culoare ANSI dintr-un șir fără succes. Am încercat deja un cod bazat pe regex.
#!/bin/bash
Albastru='\033[0;34m' # Albastru
Clear='\033[0m' # Resetare text
removeColors (){
    local uncolored_string =''
    
    local import_row='import re; \n'
    regex local_='(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]'
    local func_def_row='def escape_ansi(line): \n'
    local ansi_escape_row="ansi_escape=re.compile(r\'$regex_\') \n" 
    local return_row="return ansi_escape.sub('', line) \n"
    local print_row="print escape_ansi(line = '$1')"
    local code="$import_row$func_def_row$ansi_escape_row$return_row$print_row"
    
    echo $(python -c $cod)
}
str="Apăsați ${Blue}orice tastă${Clear} pentru a continua..."
echo -e "$str"
eliminați culorile „$str”
Mai primesc codul de mai jos.
  Fișier „<șir>”, rândul 1
    import
         ^
SyntaxError: sintaxă nevalidă
Ma poti ajuta?
Actualizați:
Am găsit biblioteca python strip-ansi.
removeColors (){
    local uncolored_string =''
    local ansi_snippet="$1"
    
    echo "$(python3 -c "din strip_ansi import strip_ansi; print(strip_ansi(\"$ansi_snippet\"))")"
}
Cu toate acestea, chiar și după ce l-am instalat, primesc eroarea de mai jos:
Traceback (cel mai recent apel ultimul):
  Fișierul „<șir>”, linia 1, în <modul>
ModuleNotFoundError: Niciun modul numit „strip_ansi”