"^ ["は何を表していますか?

私は端末の出力をプレーンテキストファイルに書いてEmacsで開きましたが、 "^ ["と表示されています。私はそのファイルに出力を書き込む前に、ターミナルのタブに変更したいのですが、それらを参照する方法はわかりません。 "^ ["は何を表していますか?

彼らは "[1m"または "[4m"の直後にあります。

3

3 答え

^ で表される文字の後に、別の文字(大文字または @ [\] ^ _?)のいずれかが表示され、スキーム)は、制御文字です。 ^ [エスケープ文字です。カーソルが文字上にあるときに Cx = what-c​​ursor-position )を押すと、コード>。

ここで、端末用の出力では、エスケープ文字はエスケープシーケンスを開始します。具体的には<アプリケーションが端末に「この文字を表示する」以外のことをする方法を示すhref = "https://en.wikipedia.org/wiki/ANSI_escape_sequences" rel = "nofollow noreferrer"> ANSIエスケープシーケンスカーソルの位置と右に1つの位置を移動します。特に、2文字のシーケンス ^ [[]は ^ [[... m /en.wikipedia.org/wiki/ANSI_escape_sequences#CSI_codes "rel =" nofollow noreferrer "> CSI )は、サブシーケンス出力のテキスト属性を変更します。 ^ [[1m ]は太字で表示され、 ^ [[4m ]は下線が引かれ、

これらの文字をタブに変更することは意味を持ちません。

このスクリプトを使用して、ほとんどのターミナルエスケープシーケンスを削除します。

1
追加された

^[ is the ASCII escape character, aka ESC. It is:

  • octal: \033
  • hexadecimal: \x1B or ^[
  • decimal: 27

それぞれの色コード(および他の制御コード)は、ASCIIエスケープ文字で始まります。

1
追加された

彼らはターミナルのカラーコードであることが判明しました。私はそれらを取り除くことができた

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

http://www.commandlinefu.com /コマンド/ view/3584/remove-color-codes-special-characters-with-sed

0
追加された