Linux

catコマンドで改行コードやタブ,行末の制御文字を表示する(Linux/Mac)

Linuxで改行コードやタブ、行末の制御コードを目視確認のため画面に表示するとき、cat -A とオプションを指定していたのですが、同じオプションがMacのBSD系には存在しなかったのでメモっておきます。

スポンサーリンク

catの制御文字確認オプション

Mac (BSD)

-t でタブ(と他の制御文字)、-eで行末(と他の制御文字)を表示します。

-teとすることで、Linux (GNU)版の -Aオプションと同じように出力されます。

## hoge fuga の間の空白はタブです
$ cat demo.txt
hoge	fuga
$ 
## 改行コードはCRLFにしました
$ file demo.txt
demo.txt: ASCII text, with CRLF line terminators
$
## タブ ^I  、改行コード ^M の制御文字が出力されます 
$ cat -t demo.txt
hoge^Ifuga^M
$
## 改行コード ^M 、行末 $ の制御文字が出力されます 
$ cat -e demo.txt
hoge	fuga^M$
$
##  改行コード ^M の制御文字のみ出力されます 
$ cat -v demo.txt
hoge	fuga^M
$
## タブ ^I  、改行コード ^M 、行末 $ の制御文字が全部出力されます 
$ cat -te demo.txt
hoge^Ifuga^M$
$
## version表示オプションはなし
$
$ man cat
...
     -e      Display non-printing characters (see the -v option), and display a dollar sign (`$') at the end of each line.
...

     -t      Display non-printing characters (see the -v option), and display tab characters as `^I'.
...
     -v      Display non-printing characters so they are visible.  Control characters print as `^X' for control-X; the delete character (octal 0177) prints as
             `^?'.  Non-ASCII characters (with the high bit set) are printed as `M-' (for meta) followed by the character for the low 7 bits.
...
$

Linux (GNU)

-t,-e の出力内容はMacと同じで、-A は気が利く複合オプションです。

$ cat -t demo.txt
hoge^Ifuga^M
$
##  タブ ^I  の制御文字のみ出力されます 
$ cat -T demo.txt
hoge^Ifuga
$
$ cat -A demo.txt
hoge^Ifuga^M$
$
$ cat -te demo.txt
hoge^Ifuga^M$
$
$ cat --version
cat (GNU coreutils) 8.22
...
$
$ man cat
       -A, --show-all
              equivalent to -vET
...
       -e     equivalent to -vE
...
       -E, --show-ends
...
       -t     equivalent to -vT

       -T, --show-tabs
              display TAB characters as ^I
...
       -v, --show-nonprinting
              use ^ and M- notation, except for LFD and TAB
...
$


今回は以上です〜ノシ

参考

(о ̄∇ ̄)/ぁざ~~っす

wikipedia 制御文字