このエントリーをはてなブックマークに追加


unexpandコマンドでスペースをタブに変換

ソースコードなどのスペースインデントなどをタブに変換したい場合、unexpandコマンドによりスペースをタブに変換することができまます。 以下にunexpandコマンドの使用方法を記します。


関連記事

unexpandコマンドの使用例

unexpandコマンドの使用方法を以下に記します。

  • 構文
    unexpand -a -t 8 入力ファイル名 > 出力ファイル名
  • 説明 オプションの -t 8は、スペース8文字を1つのタブに変換することを指定しています。
    スペース4つで1つのタブにしたい場合は、-t 4でにすればよいことになります。
    オプション-aは先頭からのタブを対象にするだけではなく、行中のタブとスペースからななる文字列も対象となります。

逆のタブをスペースに変換したい場合は、「タブをスペースに変換」を参照してください。

unexpandコマンドでタブをスペースに変換してみる

以下のテキストファイルを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コマンドの使用法でした。



添付ファイル: filespace.txt 561件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:51