Die hier angebotenen Lösungen haben bei mir nicht funktioniert. Vielleicht war mein Problem anders, aber ich musste die ASCII-Farben und andere Zeichen aus dem ansonsten reinen ASCII-Text entfernen.
Folgendes funktionierte jedoch für mich:
Escape-Codes aus ASCII-Text entfernen
sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g'
Im Kontext (BASH):
$ printf "\e[32;1mhello\e[0m\n"
hello
$ printf "\e[32;1mhello\e[0m\n" | cat -vet
^[[32;1mhello^[[0m$
$ printf "\e[32;1mhello\e[0m\n" | sed -E 's/\x1b\[[0-9]*;?[0-9]+m//g' | cat -vet
hello$
Hast du es versucht
cat /bin/mkdir | tr -cd "[:print:]"
Ich denke, es löst das Problem ?
Wenn Sie nur Textinhalte interessieren, können Sie auch
verwendencat /bin/mkdir | strings
Wissen Sie, welche Codierung die Datei derzeit verwendet? Wenn ja, können Sie es mit iconv konvertieren. Es ist ein Dienstprogramm zum Konvertieren von einer Zeichencodierung in eine andere. Wenn also die Originaldatei in UTF-8 vorliegt und Sie in ASCII konvertieren möchten, können Sie Folgendes verwenden:
iconv -f utf8 -t ascii <inputfile>
Der Dateibefehl für die Eingabedatei kann Ihnen die aktuelle Kodierung mitteilen.
Interessanterweise gibt es einen Befehl namens enca, der sein Bestes tun wird, um die verwendete Zeichencodierung zu bestimmen, wenn Sie die Sprache des Inhalts der Datei kennen.
Diese andere Frage könnte die Antwort sein.
Dies scheint mit sed
nicht zu funktionieren . Vielleicht tr
reicht?
tr -d '\200-\377'
Oder mit der Ergänzung:
tr -cd '\000-\177'