Linux / コマンド / column - テキストを読みやすい表形式に整列

columnは、列幅が不揃いなテキストを見やすい列形式に配置します。util-linuxのcolumn -tは、区切られたフィールドの幅を揃えて、ターミナルで読みやすい表を作ります。

これは表示形式を変えるコマンドであり、データを構造的に検証するパーサーではありません。出力幅、長い値の折り返しや色の処理などは、util-linuxのバージョンによって異なる場合があります。コマンドがない場合は、別途パッケージのインストールが必要なことがあります。

基本的な文法

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

インストールされている実装とオプションは、配布版によって異なる場合があります。man columnで現在のシステムの説明を確認してください。

使用例

空白区切りの表の整列

読み取り可能な packages.txt にパッケージ名とバージョンなどを用意します。フィールド幅を計算して列を揃えます。行の順序は変えないため、sortによる並べ替え とは目的が異なります。

column -t packages.txt

コロン区切りの入力

-s で入力区切り文字を指定し、-t で表形式を作ります。次の例はLinuxのアカウント情報を表示するため、画面を共有する場合は内容に注意します。空のフィールドを含む出力は実装やバージョンでも確認してください。

column -s ':' -t /etc/passwd

コマンド出力の整理

標準入力で受け取った結果をターミナルに見やすく出力します。

printf 'name score\nkim 90\nlee 85\n' | column -t

表形式の出力を確認する

column -tは入力列の幅を計算して空白で揃えます。次の例は空白で区切られた2列を整列します。

printf 'NAME AGE\nAna 7\nBenjamin 12\n' | column -t

例の出力(空白の数は実装によって異なる場合があります):

NAME      AGE
Ana       7
Benjamin  12

表示は人間が読みやすいですが、構造化データを安全に出力するフォーマットではありません。スクリプトが列を再解析する必要がある場合は、空白で整列した結果の代わりに、タブ・CSV・JSONのように明確な区切り形式を維持してください。ディストリビューションごとにcolumnのオプションサポート範囲が異なる場合があります。

主なオプションと形式

オプション・形式 説明
-t 入力を表としてフォーマットします。
-s 区切り文字 入力フィールドを区切る文字を指定します。複数文字なら各文字が区切りになり、一つの文字列とは扱われません。
-o 区切り文字 表モードで、出力列間に入れる文字列を指定します。
-x 基本の列の埋め方向を行優先に変更します。

使用する際の注意点

列が整列して見えても、それをデータ交換形式だと信じないでください。端末の幅やバージョンによって出力が異なる場合があります。CSVの引用符のルールのような複雑な形式は、この簡単な例には適していません。

よくある質問

column コマンドがないというメッセージが表示されたら?

使用しているディストリビューションで util-linux の column 提供パッケージがインストールされているか確認してください。パッケージ名はディストリビューションによって異なる場合があります。

公式ドキュメント

オプションの正確な動作や実装ごとの違いは、column 関連の公式ドキュメントで確認できます。