(17)【expand】シェルスクリプトコマンド活用紹介

expandコマンド

  • タブを空白に変換する(expandコマンド)
  • タブの幅を指定する

expandコマンド概要

「expand」はタブを空白に変換するコマンド、「unexpand」は空白をタブに変換するコマンドです。デフォルトのタブ幅は8桁で、これを変更したい場合は「-t」オプションでタブの文字数を指定します。

expandコマンドの書式

expand [オプション] [ファイル]
unexpand [オプション] [ファイル]

expandコマンドの主なオプション

オプション 意味
-t 文字数 タブの文字数またはタブ位置のリストを指定する

expandコマンド詳細説明

タブを空白に変換する

まずサンプルファイルを用意します。

$ echo -e "No-1\tTokyo\t1354098\nNo-2\tOsaka\t934765\nNo-3\tNagoya\t786592" > ex.txt
$ cat ex.txt
No-1	Tokyo	1354098
No-2	Osaka	934765
No-3	Nagoya	786592

expandコマンドでタブを空白に変換します。

$ expand ex.txt > ex2.txt
$ cat ex2.txt
No-1    Tokyo   1354098
No-2    Osaka   934765
No-3    Nagoya  786592

見た目は全く変わりませんが、タブが空白に置き換えられました。
デフォルトのタブ幅は8です。

タブの幅を指定する

タブ幅を変更する場合は、「-t」オプションを使用します。例えば、12文字の幅にしたい場合は「-t 12」と指定します。

# サンプルファイルを作成
$ echo -e "No-1\tTokyo\t1354098\nNo-2\tOsaka\t934765\nNo-3\tNagoya\t786592" > ex.txt
$ cat ex.txt
No-1	Tokyo	1354098
No-2	Osaka	934765
No-3	Nagoya	786592

# タブ幅のデフォルトは8です。
$ expand ex.txt > ex2.txt
$ cat ex2.txt
No-1    Tokyo   1354098
No-2    Osaka   934765
No-3    Nagoya  786592

# タブ幅を10に指定
$ expand -t 10 ex.txt >ex3.txt
$ cat ex3.txt
No-1      Tokyo     1354098
No-2      Osaka     934765
No-3      Nagoya    786592
ヒント
タブ幅を変更する場合には、$ expand -t 10 と、覚えておけば良いと思います。

書籍の紹介

(18)【sed】シェルスクリプトコマンド活用紹介

(18)【sed】シェルスクリプトコマンド活用紹介

(16)【cut】シェルスクリプトコマンド活用紹介

(16)【cut】シェルスクリプトコマンド活用紹介