LinuxでTAB区切りのファイルの表示位置を揃える!(expand/unexpand)

LinuxでTAB区切りのファイルの各列の先頭を添えて表示します!

列の表示位置を揃える!(expand)

expandコマンドは、TAB区切りのファイルを、指定した文字単位の区切り位置に揃える動作をします。デフォルトは、「8」です。元ファイルは以下とします。列は、「TAB」1文字で区切られています。

$ cat sample.txt
192.168.1.1	linux01
192.168.1.2	linux02
192.168.1.11	windows01
192.168.1.12	windows02
192.168.1.13	windows03

値を少しつづ変えて試してみます。

$ expand -t 1 sample.txt
192.168.1.1 linux01
192.168.1.2 linux02
192.168.1.11 windows01
192.168.1.12 windows02
192.168.1.13 windows03
$ expand -t 2 sample.txt
192.168.1.1 linux01
192.168.1.2 linux02
192.168.1.11  windows01
192.168.1.12  windows02
192.168.1.13  windows03
$ expand -t 3 sample.txt
192.168.1.1 linux01
192.168.1.2 linux02
192.168.1.11   windows01
192.168.1.12   windows02
192.168.1.13   windows03
$ expand -t 4 sample.txt
192.168.1.1 linux01
192.168.1.2 linux02
192.168.1.11    windows01
192.168.1.12    windows02
192.168.1.13    windows03
$ expand -t 5 sample.txt
192.168.1.1    linux01
192.168.1.2    linux02
192.168.1.11   windows01
192.168.1.12   windows02
192.168.1.13   windows03
$ expand -t 6 sample.txt
192.168.1.1 linux01
192.168.1.2 linux02
192.168.1.11      windows01
192.168.1.12      windows02
192.168.1.13      windows03
$ expand -t 7 sample.txt
192.168.1.1   linux01
192.168.1.2   linux02
192.168.1.11  windows01
192.168.1.12  windows02
192.168.1.13  windows03
$expand -t 8 sample.txt
192.168.1.1     linux01
192.168.1.2     linux02
192.168.1.11    windows01
192.168.1.12    windows02
192.168.1.13    windows03
$ expand -t 20 sample.txt
192.168.1.1         linux01
192.168.1.2         linux02
192.168.1.11        windows01
192.168.1.12        windows02
192.168.1.13        windows03

結果は標準出力に出力されます。また、「-t 8」の場合は、変更がないためが「TAB」が空白に置き換わらず、「TAB」のままでした。「TAB」を「スペース」に変換するコマンドではなく、あくまでも表示のためのコマンドと割り切ったほうがよさそうです。

「TAB」を「スペース」に置き換える!

「expand」の反対の動作をしそうな「unexpand」コマンドがあるので、動作を試してみました。以下のファイルを使用します。数字は、先頭のスペースです。

$ cat sample_unexpand.txt 
 1
  2
   3

「空白文字」1文字を「TAB」に変換します。

$ unexpand -at 1 sample_1.txt
$ unexpand -t 1 sample_unexpand.txt 
	1
		2
			3

「空白文字」2文字を「TAB」に変換します。

$ unexpand -t 2 sample_unexpand.txt 
 1
	2
	 3

「空白文字」3文字を「TAB」に変換します。

$ unexpand -t 3 sample_unexpand.txt 
 1
  2
	3

おわりに

expandコマンドを使用するときには、各フィールドのデータの長さの最大長より大きい値を設定すると、データが見やすく整列されます。unexpandコマンドは、先頭のスペースを「TAB」に変更するのに使用します。

関連記事

関連書籍(Amazon)

N/A