制御文字の概要
通常は見えない特殊な文字のことを「制御文字」と呼びます。
ASCIIコードの場合は、0番目から31番目、127番目が制御文字です。
ここでは、シェル上で制御文字を扱う方法をまとめます。
制御文字の表現
キャレット記法 | 8進 | 10進 | 16進 |
---|---|---|---|
^@ | 0 | 0 | 0 |
^A | 1 | 1 | 1 |
^B | 2 | 2 | 2 |
^C | 3 | 3 | 3 |
^D | 4 | 4 | 4 |
^E | 5 | 5 | 5 |
^F | 6 | 6 | 6 |
^G | 7 | 7 | 7 |
^H | 10 | 8 | 8 |
^I | 11 | 9 | 9 |
^J | 12 | 10 | a |
^K | 13 | 11 | b |
^L | 14 | 12 | c |
^M | 15 | 13 | d |
^N | 16 | 14 | e |
^O | 17 | 15 | f |
^P | 20 | 16 | 10 |
^Q | 21 | 17 | 11 |
^R | 22 | 18 | 12 |
^S | 23 | 19 | 13 |
^T | 24 | 20 | 14 |
^U | 25 | 21 | 15 |
^V | 26 | 22 | 16 |
^W | 27 | 23 | 17 |
^X | 30 | 24 | 18 |
^Y | 31 | 25 | 19 |
^Z | 32 | 26 | 1a |
^[ | 33 | 27 | 1b |
^\ | 34 | 28 | 1c |
^] | 35 | 29 | 1d |
^^ | 36 | 30 | 1e |
^_ | 37 | 31 | 1f |
^? | 177 | 127 | 7f |
制御文字の入力方法
# Ctrl+V Ctrl+A
^A
# Ctrl+V Ctrl+V
^V
制御文字を表示する
catコマンドの場合
# 制御文字は見えない
$cat ctrl.txt
cat2013
horse014
sheep2015
monkey2016
# -vオプションを付与すると制御文字が見える
$cat -v ctrl.txt
cat^A2013
horse^B014
sheep^A2015
monkey^B2016
エスケープシーケンスと利用例
^Xの表記いろいろ
# 8進表記
$echo $'\030' | more
^X
# 16進表記
$echo $'\x18' | more
^X
# 文字表記
$echo $'\cX' | more
^X
利用例(grep)
# ^A を検索
$cat ctrl.txt | grep $'\cA' | more
cat^A2013
sheep^A2015
# sheep^A を検索
$cat ctrl.txt | grep $'sheep\cA' | more
sheep^A2015
利用例(sed)
# ^B を ^A に置換
$cat ctrl.txt | sed $'s/\x2/\x1/g' | more
cat^A2013
horse^A014
sheep^A2015
monkey^A2016