文字またはリテラル文字列を個別にエスケープする方法への多くのリンクを確認しましたが、背景が赤のgrep
ANSIエスケープシーケンスを見つけるために組み合わせることはでき^[41m
ませ^[
ん。 。同時に。Ctrl+VCtrl+[^[-E
-F
私が探したい生のバイトはhexdump
次のとおりです。
1b 5b 33 37 6d 1b 5b 34 31 6d 30 2e 30 30 25
ここでは、に対応します。WHITE FOREGROUND
RED BACKGROUND
0.00%
このコードを生成しています。Python用coloramaパッケージそして、Fore.WHITE+Back.RED
もし気になる方がいらっしゃるなら。
それでは、私が逃している秘密は何ですか?
答え1
ただし、背景赤のANSIエスケープシーケンスを見つけるために組み合わせることはできません。^[41分
vim
このファイルを次のように開くと^[41分、しかし^[[41分、どちら^[矢印キーを介してグループに移動します。
1b
はい脱出する+^[
で呼び出すことができる単一のエスケープ文字で表示され、その後に続きます。 2つの文字のように見えますが、そうではなく単一の文字です。CtrlVEsc^[
xb@dnxb:~/Downloads/grep$ ascii 1b
ASCII 1/11 is decimal 027, hex 1b, octal 033, bits 00011011: called ^[, ESC
Official name: Escape
xb@dnxb:~/Downloads/grep$
次の手順を実行します(Ctrl+Vの後にEsccreateを使用してから連続して^[
入力します\[41m
)。
xb@dnxb:~/Downloads/grep$ hexdump -C /tmp/2
00000000 1b 5b 33 37 6d 1b 5b 34 31 6d 30 2e 30 30 25 0a |.[37m.[41m0.00%.|
00000010
xb@dnxb:~/Downloads/grep$ \grep '^[\[41m' /tmp/2
0.00%
xb@dnxb:~/Downloads/grep$ \grep '^[\[41m' /tmp/2 | hexdump -C
00000000 1b 5b 33 37 6d 1b 5b 34 31 6d 30 2e 30 30 25 0a |.[37m.[41m0.00%.|
00000010
xb@dnxb:~/Downloads/grep$
\
エイリアシング効果を避けるには、プレフィックスでgrepをエスケープします--color
。
[選択]:
\grep -P '\e\[41m'
(出典:OPのコメント)\grep '^[\[41m'
、+の後にCtrl+を使用して作成されます。キーボードのバックスペースキーが0x08ではない場合に便利ですが、+の後に+を使用して生成できます(^ H get from)。VCtrl[^[
CtrlVCtrlHascii 08