ソースコードなどのスペースインデントなどをタブに変換したい場合、unexpandコマンドによりスペースをタブに変換することができまます。 以下にunexpandコマンドの使用方法を記します。
unexpandコマンドの使用方法を以下に記します。
unexpand -a -t 8 入力ファイル名 > 出力ファイル名
逆のタブをスペースに変換したい場合は、「タブをスペースに変換」を参照してください。
以下のテキストファイルをunexpandコマンドでスペースに変換してみます。
Linux
CentOS
Debian
Ubuntu
odコマンドでHEX表示してみました。 0x20がスペースになります。
$ od -tx1c space.txt
0000000 4c 69 6e 75 78 0a 20 20 20 20 43 65 6e 74 4f 53
L i n u x \n C e n t O S
0000020 0a 20 20 20 20 20 20 20 20 44 65 62 69 61 6e 0a
\n D e b i a n \n
0000040 20 20 20 20 20 20 20 20 20 20 20 20 55 62 75 6e
U b u n
0000060 74 75 0a
t u \n
0000063
unexpandコマンドで4スペースをタブに変換してみます。
Linux CentOS Debian Ubuntu
odコマンドでタブ(\t, 0x09)になっているかを確認してみます。
$ unexpand -t 4 -a space.txt | od -tx1c
0000000 4c 69 6e 75 78 0a 09 43 65 6e 74 4f 53 0a 09 09
L i n u x \n \t C e n t O S \n \t \t
0000020 44 65 62 69 61 6e 0a 09 09 09 55 62 75 6e 74 75
D e b i a n \n \t \t \t U b u n t u
0000040 0a
\n
0000041
4つ続いているスペースがタブ(0x09)に変換されています。
以上、unexpandコマンドの使用法でした。