Linux

Mac/Linux タブの制御文字や行末を標準出力して確認する

Linuxでタブや行末を確認のため表示するとき何も考えず cat -A でやっていたのですが、同等のオプションがMacのBSD系でなく、ふぁっ?となったので。

スポンサーリンク

コマンド

Mac (BSD)

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

### オプションなしだと普通にテキストの内容だけ出力されます。※hoge fuga の間の空白はタブ
$ cat hoge.txt
hoge	fuga
$ 
### CRLF → 制御文字 ^M が出力されます 
$ file hoge.txt
hoge.txt: ASCII text, with CRLF line terminators
$
$ cat -t hoge.txt
hoge^Ifuga^M
$
$ cat -e hoge.txt
hoge	fuga^M$
$
$ cat -v hoge.txt
hoge	fuga^M
$
$ cat -te hoge.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 は気が利く複合オプションです。(知らないで使ってた。。orz )

$ cat -t hoge.txt
hoge^Ifuga^M
$
$ cat -T hoge.txt
hoge^Ifuga
$
$ cat -A hoge.txt
hoge^Ifuga^M$
$
$ cat -te hoge.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 制御文字

関連書籍