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 関連の公式ドキュメントで確認できます。




