#navi(../)
* unexpandコマンドでスペースをタブに変換 [#cdd04a52]
ソースコードなどのスペースインデントなどをタブに変換したい場合、unexpandコマンドによりスペースをタブに変換することができまます。
以下にunexpandコマンドの使用方法を記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#l945f603]
-[[viのインデントをスペースにする方法>逆引きUNIXコマンド/viのインデントをスペースにする方法]]
-[[タブをスペースに変換・expandコマンド>タブをスペースに変換>逆引きUNIXコマンド/タブをスペースに変換]]
-[[HEX形式でファイルを見たい・odコマンド>逆引きUNIXコマンド/HEX形式でファイルを見たい]]
* unexpandコマンドの使用例 [#b2e220fb]
unexpandコマンドの使用方法を以下に記します。
-構文
unexpand -a -t 8 入力ファイル名 > 出力ファイル名
-説明
オプションの -t 8は、スペース8文字を1つのタブに変換することを指定しています。~
スペース4つで1つのタブにしたい場合は、-t 4でにすればよいことになります。~
オプション-aは先頭からのタブを対象にするだけではなく、行中のタブとスペースからななる文字列も対象となります。
逆のタブをスペースに変換したい場合は、「[[タブをスペースに変換>逆引きUNIXコマンド/タブをスペースに変換]]」を参照してください。
* unexpandコマンドでタブをスペースに変換してみる [#z2434070]
以下のテキストファイルをunexpandコマンドでスペースに変換してみます。
#ref(space.txt)
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コマンドの使用法でした。
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)