unexpand - スペースをタブに変換する

スポンサーリンク

unexpandコマンドは、スペースをタブに変換することができます。

このunexpandコマンドとは逆のexpandコマンドもあります。

これらのコマンドは、ソースファイルの内容でスペースかタブかを統一するときに使うことができます。

unexpandコマンドとは

unexpandコマンドとは、スペースをタブに変換するコマンドです。
expandコマンドの逆のコマンドで、どのくらいのスペースをタブに変換するかはタブストップ幅で決定します。

unexpandコマンドの利用例

タブストップ幅が8で行頭のスペースをタブに変換
(オプションなし)

unexpandコマンドはデフォルトでは、行頭のスペースのみをタブストップ幅が8で、タブに変換することができます。

コマンド例

hello.c

実行結果

分かりにくいですが、スペースがタブに変換されています。コマンドの確認方法として、cat -Tでの確認やエディタなどの検索機能でタブ文字になっているかを確認してもよいでしょう。

すべてのスペースをタブに変換
(-aオプション)

-aオプションは、すべてのスペースをタブストップ幅が8で、タブに変換することができます。

コマンド例

spacefile.txt

実行結果

ページの表示上の都合でタブ文字での表示がきれいな表示にならないかもしれません。ご了承ください。

タブストップ幅を変更
(-tオプション)

-tオプションを用いることで、どのくらいのスペースをタブに変更するかのタブストップ幅を変更することができます。
また、-tオプションは、暗黙的に-aオプションがONになることに注意が必要です。

コマンド例

実行結果

行頭のスペースのみをタブに変換
(--first-only)

--first-onlyは、行頭のスペースのみをタブに変換します。
また、--first-onlyは、-aオプションより優先されます。
つまり、-tオプションでONになった-aオプションをOFFにすることができます。

コマンド例

実行結果

参考

Gnu Coreutils

Gnu Coreutils日本語版