表形式でテキストファイルの内容を表示する方法|columnコマンドの使い方と-tオプション解説

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > 表形式でテキストファイルの内容を表示する方法|columnコマンドの使い方と-tオプション解説
「Linuxでテキストファイルの内容を整形して表形式で表示したい」
「columnコマンドでどんな整形ができるのか知りたい」
column コマンドを使うと、ファイルの内容や標準入力のテキストを整形して表形式で表示できます。
箇条書きになっているデータを、ターミナルの幅に合わせて自動的に複数列に並べ替えてくれます。

この記事では、columnコマンドの基本的な使い方と実務でよく使うオプションを解説します。

【この記事でわかること】
・columnコマンドでファイルを表形式に整形する基本手順
・-tオプションでTSV/CSV形式のファイルを見やすく整形する方法
・区切り文字を指定する-sオプションの使い方
・パイプと組み合わせてコマンドの出力を整形する方法

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

columnコマンドとは

column コマンドは、1列のテキストを複数列に整形して表示するコマンドです。
ほとんどのLinuxディストリビューションに標準で含まれています(util-linux パッケージの一部)。

基本的な使い方

1. 箇条書きテキストを表形式に整形する

1行に1データが入ったファイルを、ターミナルの幅に合わせて複数列に並べます。

# ファイルの内容を確認(1列の箇条書き) $ head -5 country_list.txt Japan Afghanistan Algeria Andorra Angola # column コマンドで整形して表示 $ column country_list.txt Japan Afghanistan Algeria Andorra Angola Antigua and Barbuda Argentina Armenia Australia Austria Azerbaijan Bahamas

2. 標準入力から整形する(パイプ利用)

# コマンドの出力をcolumnに渡して整形 $ ls /usr/bin | column [ ar basename bash bunzip2 bzcat bzip2 bzip2recover cal cat chgrp chmod chown chsh clear cmp column comm

応用・実務Tips

1. -tオプションでTSVを見やすく整形する(表形式)

-t(table)オプションを使うと、タブ区切りのデータを列幅を揃えて表示できます。

# タブ区切りのデータ $ cat server_list.txt hostname ip_address cpu memory web01 192.168.1.10 4 8GB db01 192.168.1.20 8 32GB cache01 192.168.1.30 2 4GB # -t で列を揃えて整形 $ column -t server_list.txt hostname ip_address cpu memory web01 192.168.1.10 4 8GB db01 192.168.1.20 8 32GB cache01 192.168.1.30 2 4GB

2. -sオプションで区切り文字を指定する(CSVの整形)

コンマ区切り(CSV)など、任意の区切り文字を指定するには -s オプションを使います。

# コンマ区切りのCSVを整形して表示 $ cat data.csv name,age,city Alice,30,Tokyo Bob,25,Osaka Charlie,35,Nagoya $ column -t -s "," data.csv name age city Alice 30 Tokyo Bob 25 Osaka Charlie 35 Nagoya

3. dfコマンドの出力を整形する

# df -h の出力をcolumnで整形 $ df -h | column -t Filesystem Size Used Avail Use% Mounted on devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm /dev/nvme0n1p1 50G 12G 38G 25% / /dev/sdb1 20G 100M 19G 1% /data

トラブルシュート

列がずれて表示される場合

データに全角文字が含まれる場合、バイト数と表示幅が異なるため、column -t で列がずれることがあります。
日本語を含むデータの整形には awkprintf を使った手動整形が確実です。

「column: command not found」が出る場合

# RHEL/CentOS系 # dnf install -y util-linux # Ubuntu系 # apt install -y bsdmainutils

本記事のまとめ

やりたいこと コマンド
ファイルを複数列に整形 column ファイル名
タブ区切りを表形式に整形 column -t ファイル名
コンマ区切りを整形 column -t -s "," ファイル名
コマンドの出力を整形 df -h | column -t
lsの出力を整形 ls /usr/bin | column

Linuxのテキスト処理コマンドを体系的に学びませんか?

columnのような整形コマンドも、awk・sed・grepと組み合わせることで、テキスト処理の幅が一気に広がります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。