Infra Engineer

タブとスペースの変換 ~expandコマンド・unexpandコマンド~
2021.10.06
Lv1

タブとスペースの変換 ~expandコマンド・unexpandコマンド~

本記事の対象者

LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。


今回の内容

今回は、expandコマンドとunexpandコマンドについて解説します。

・expandコマンド
・unexpandコマンド
まとめ
確認問題

expandコマンド

expandコマンドは、文書内に含まれるタブをスペースに変換するコマンドです。

expand
意味 タブをスペースに変換する
書式 expand [オプション] ファイル

主なオプションは以下になります。

オプション
-t タブ1つあたりのスペースの数を指定する
-i 行頭のタブのみ変換する
例①)
タブをスペースに変換し、新規ファイルとして出力
[root@localhost test]# cat test1.txt
        aaa     1111
        bbb     2222
        ccc     3333

[root@localhost test]# expand test1.txt > test2.txt
[root@localhost test]# cat test2.txt
        aaa     1111
        bbb     2222
        ccc     3333

例②)
タブを3つのスペースに変換し、新規ファイルとして出力
[root@localhost test]# expand -t3 test1.txt > test3.txt
[root@localhost test]# cat test3.txt
   aaa   1111
   bbb   2222
   ccc   3333

unexpandコマンド

unexpandコマンドは、expandコマンドとは逆のことを行います。スペースをタブに変換して出力を行います。

unexpand
意味 スペースをタブに変換する
書式 unexpand [オプション] ファイル

主なオプションは以下になります。

オプション
-t タブに変換するスペースの数を指定する
-a 行頭のタブ以外も変換する
例①)
スペースをタブに変換し、新規ファイルとして出力
[root@localhost test]# unexpand test2.txt > test4.txt
[root@localhost test]# cat test4.txt
        aaa     1111
        bbb     2222
        ccc     3333

まとめ

今回は、タブとスペースの変換を行うコマンド2つを見てきました。
文章ではタブとスペースを表すのが難しいので、是非ご自身で操作を行って確認してみてください。変換を行った後、viエディタで開いてカーソルを動かすとタブとスペースの違いが分かるかと思います。


確認問題

問題

スペースをタブに変換して出力するコマンドは次のうちどれか。

A) fmt
B) chtab
C) expand
D) unexpand

解答・解説
答え:D

A) ⇒ 出力を整形するコマンドです。
B) ⇒ 存在しません。
C) ⇒ タブをスペースに変換するコマンドです。
D) ⇒ 正解です。