ソースコードなどのスペースインデントなどをタブに変換したい場合、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コマンドの使用法でした。