utte

expand タブを空白に変換する

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

試してみる

主なオプション

-t 数タブ位置の間隔(既定は8)。カンマ区切りで位置を個別に指定できる
-i行頭のタブだけを変換する

解説

基本

expand は、タブ文字を、同じ見た目になる空白に変換します。タブの見た目は、環境によって違います。空白にすれば、どこで開いても桁がそろいます。

タブは固定の幅ではない

タブは「次のタブ位置まで進める」文字です。既定のタブ位置は、8桁ごとです。そのため、name のあとのタブは、4つの空白になるといったように、文字数に応じて空白の数が変わります。-t でタブ位置の間隔を変えられます。

行頭だけを変える

-i を付けると、行頭のタブだけが対象になります。コードのインデントだけを空白に変えて、行の途中のタブは残したいときに使います。

逆の操作

空白をタブに戻すコマンドは unexpand です。既定では行頭の空白だけを変換し、-a を付けると、すべての空白が対象になります。

tr との違い

tr '\t' ' ' は、タブ1つを空白1つにします。桁はそろいません。expand は、桁がそろうように、必要な数の空白にします。

関連するコマンド

LinuC 101の出題範囲