Linuxでターミナルを使っていると、出力結果が「見づらい」と感じたことはありませんか?
特に、CSVファイルやスペース区切りのデータ、複数のカラムがあるテキストは、そのままでは情報を把握するのが困難です。
そんな時に活躍するのが、column
コマンドです。
ls
やcat
、cut
やawk
などの出力を、整列された表形式にして見やすくしてくれるのがこのcolumnコマンド。
シンプルながら非常に便利で、スクリプトにも応用できます。
この記事では、初心者にもわかりやすくcolumn
コマンドの使い方や注意点を、具体例付きで丁寧に解説していきます。
Linuxの「column」コマンドとは?基本の役割を理解しよう

「column」は何をするコマンド?
column
は、標準入力(またはファイル)で受け取ったテキストデータを表形式に整形して表示するLinuxコマンドです。
縦に並んだデータをカラム(列)で揃えた横並びの表にすることで、情報の把握が一目でできるようになります。
ビフォー・アフターで分かる効果
整形前(見づらい):
名前:年齢:職業
田中太郎:30:エンジニア
鈴木花子:25:デザイナー
佐藤次郎:35:マネージャー
整形後(見やすい):
名前 年齢 職業
田中太郎 30 エンジニア
鈴木花子 25 デザイナー
佐藤次郎 35 マネージャー
基本構文
column [オプション] [ファイル]
または、パイプで使う形式(一般的):
cat ファイル名 | column -t
主な用途
用途 | 説明 |
---|---|
CSV整形 | カンマやタブ区切りファイルを表形式で表示 |
コマンド出力整形 | ps、df、lsなどの出力を見やすく |
ログ解析 | cutやawkの出力を整理 |
設定ファイル確認 | /etc/passwdなどの区切り文字ファイルを整形 |
ポイント: columnコマンドは、Linux上での「見やすさ」を改善するための頼れるツールです。
columnコマンドの使い方と便利なオプション

よく使うオプション一覧
オプション | 説明 | 使用頻度 |
---|---|---|
-t | 各列をタブで整形して「表形式」にする | ★★★ |
-s | 区切り文字を指定(カンマ、コロンなど) | ★★★ |
-c | 出力カラム幅を指定 | ★★☆ |
-x | 行の代わりに列で埋める | ★☆☆ |
-n | ヘッダーを整形しない | ★☆☆ |
基本的な使用例
例① コロン区切りデータの整形:
echo -e "名前:年齢:職業\n田中:30:エンジニア\n鈴木:25:デザイナー" | column -s ":" -t
出力:
名前 年齢 職業
田中 30 エンジニア
鈴木 25 デザイナー
例② CSVファイルの整形:
# sample.csvの中身
# 名前,年齢,職業,給与
# 田中太郎,30,エンジニア,500000
# 鈴木花子,25,デザイナー,400000
cat sample.csv | column -s "," -t
出力:
名前 年齢 職業 給与
田中太郎 30 エンジニア 500000
鈴木花子 25 デザイナー 400000
例③ スペース区切りデータの整形:
echo -e "ID 名前 スコア\n001 田中 85\n002 鈴木 92" | column -t
出力:
ID 名前 スコア
001 田中 85
002 鈴木 92
実際のファイルでの使用例
設定ファイルの確認:
# /etc/passwdファイルを見やすく表示
head -5 /etc/passwd | column -s ":" -t
出力例:
root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin
daemon x 2 2 daemon /sbin /sbin/nologin
CSVファイルの確認:
# sales.csvを表形式で確認
cat sales.csv | column -s "," -t | head -10
ポイント: -t
と-s
オプションを組み合わせることで、ほとんどのテキストを「表形式」に整形できます。
columnコマンドの注意点とトラブル対策
よくあるトラブルと解決法
問題① 区切り文字が不揃いでうまく整列しない
原因: 区切り文字の指定が間違っている
悪い例:
# タブ区切りなのにカンマで指定
cat data.tsv | column -s "," -t # うまく整形されない
良い例:
# タブ区切りの場合
cat data.tsv | column -t
# スペース区切りの場合
cat data.txt | column -s " " -t
# セミコロン区切りの場合
cat data.txt | column -s ";" -t
問題② ターミナル幅に収まりきらない
解決法①: カラム幅を制限
cat wide_data.csv | column -s "," -t | cut -c 1-100
解決法②: 必要なカラムだけ抽出
cat data.csv | cut -d "," -f 1,3,5 | column -s "," -t
問題③ 日本語文字が崩れる
原因: 文字幅の計算が正しくない
対処法:
# 環境変数でロケールを設定
LANG=ja_JP.UTF-8 cat japanese_data.csv | column -s "," -t
問題④ ヘッダーが他の行と揃わない
原因: ヘッダーの文字数が長すぎる
解決法:
# ヘッダーを別途処理
head -1 data.csv
tail -n +2 data.csv | column -s "," -t
OS別の注意点
Linux(Ubuntu/CentOS):
- 標準でインストール済み
util-linux
パッケージに含まれる
macOS:
- 古いバージョンではインストールが必要
# Homebrewでインストール
brew install util-linux
# インストール後のパス確認
which column
WSL(Windows Subsystem for Linux):
- Linuxと同様に利用可能
- Windows PowerShellでは使用不可
ポイント: columnは便利ですが、使う際には「区切り文字」と「データ形式」に注意する必要があります。
columnコマンドの実用例|スクリプトや日常業務で使いこなそう

システム管理での活用例
例① プロセス一覧を整形して表示:
# 実行中プロセスの上位10件を見やすく表示
ps aux | head -11 | column -t
出力例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 225316 4816 ? Ss 10:00 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:00 0:00 [kthreadd]
例② ディスク使用量を表形式で表示:
# ディスク使用量を見やすく表示
df -h | column -t
出力例:
Filesystem Size Used Avail Use% Mounted
/dev/sda1 20G 15G 4.2G 79% /
/dev/sda2 100G 45G 50G 48% /home
例③ ネットワーク接続状況の確認:
# アクティブな接続を整形表示
netstat -tuln | grep LISTEN | column -t
ログ解析での活用例
例① アクセスログから特定情報を抽出:
# アクセスログからIPアドレスとアクセス時刻を抽出・整形
cat access.log | cut -d " " -f 1,4 | column -t | head -10
例② エラーログの整理:
# エラーログから日時とエラータイプを整形
grep "ERROR" app.log | cut -d " " -f 1,2,5 | column -t
データ分析での活用例
例① 売上データの簡易分析:
# 売上CSVファイルの月別集計を見やすく表示
cat sales.csv | cut -d "," -f 1,3 | sort | uniq -c | column -t
例② ユーザー統計の表示:
# /etc/passwdからユーザー情報を整形
cut -d ":" -f 1,3,5 /etc/passwd | column -s ":" -t
スクリプトでの活用例
例① システム監視スクリプト:
#!/bin/bash
# system_monitor.sh
echo "=== CPU使用率 ==="
top -bn1 | grep "load average" | column -t
echo -e "\n=== メモリ使用状況 ==="
free -h | column -t
echo -e "\n=== ディスク使用状況 ==="
df -h | column -t
例② CSV処理スクリプト:
#!/bin/bash
# csv_formatter.sh
if [ $# -eq 0 ]; then
echo "使用法: $0 csvファイル名"
exit 1
fi
echo "ファイル: $1"
echo "行数: $(wc -l < $1)"
echo ""
echo "データ内容:"
cat "$1" | column -s "," -t | head -20
他のコマンドとの組み合わせ
パイプライン処理の例:
# 複雑なデータ処理の例
cat data.csv | \
cut -d "," -f 1,3,5 | \
sort -t "," -k2 -n | \
column -s "," -t | \
head -20
解説:
- CSVファイルから1,3,5列目を抽出
- 2列目の数値で並び替え
- 表形式に整形
- 上位20行を表示
設定ファイルの確認
例① 各種設定ファイルの整形:
# SSH設定の確認
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$" | column -t
# crontabの確認
crontab -l | column -t
# 環境変数の確認
env | sort | column -s "=" -t
ポイント: columnコマンドは日常的なターミナル作業を視覚的に快適にする万能ツールです。
高度な使い方とカスタマイズ

出力フォーマットのカスタマイズ
例① カラム幅の調整:
# 各カラムの最大幅を20文字に制限
cat data.csv | column -s "," -t | cut -c 1-80
例② ヘッダーの装飾:
#!/bin/bash
# テーブルにヘッダー装飾を追加
echo "$(head -1 data.csv | column -s "," -t)"
echo "$(head -1 data.csv | column -s "," -t | sed 's/./-/g')"
tail -n +2 data.csv | column -s "," -t
より複雑なデータ処理
例① 条件付きフィルタリング:
# 特定条件のデータだけを抽出・整形
awk -F, '$3 > 1000 {print $1","$2","$3}' sales.csv | column -s "," -t
例② 集計結果の表示:
# カテゴリ別の集計を表形式で表示
cut -d "," -f 2,3 data.csv | \
awk -F, '{sum[$1] += $2} END {for (i in sum) print i","sum[i]}' | \
sort -t "," -k2 -nr | \
column -s "," -t
エイリアスの設定
便利なエイリアスの例:
# ~/.bashrcまたは~/.zshrcに追加
alias ct='column -t'
alias ccsv='column -s "," -t'
alias ctsv='column -s "\t" -t'
alias ccolon='column -s ":" -t'
# 使用例
cat data.csv | ccsv
ps aux | ct
パフォーマンスとメモリ使用量の考慮
大きなファイルの処理
注意点:
- columnコマンドは全データをメモリに読み込む
- 大きなファイル(数GB以上)では注意が必要
対処法:
# ファイルサイズの確認
ls -lh large_file.csv
# 先頭だけ処理(推奨)
head -1000 large_file.csv | column -s "," -t
# ページャーとの組み合わせ
cat data.csv | column -s "," -t | less
メモリ効率の良い処理
# 大量データの場合はchunkに分割
split -l 10000 large_file.csv chunk_
for file in chunk_*; do
echo "Processing $file..."
cat "$file" | column -s "," -t > "${file}.formatted"
done
よくある質問と回答
Q: columnコマンドが見つからない場合は?
A: OSによってインストール方法が異なります
# Ubuntu/Debian
sudo apt-get install bsdmainutils
# CentOS/RHEL
sudo yum install util-linux
# macOS
brew install util-linux
Q: 日本語が含まれるファイルで列がずれる場合は?
A: 文字エンコーディングとロケールを確認してください
# ファイルの文字コード確認
file -bi filename.csv
# UTF-8での処理
LANG=ja_JP.UTF-8 cat filename.csv | column -s "," -t
Q: 非常に長い行がある場合の対処法は?
A: 行の長さを制限するか、必要な部分だけ抽出してください
# 行の長さを制限
cat data.csv | column -s "," -t | cut -c 1-120
# 必要なカラムだけ抽出
cut -d "," -f 1-5 data.csv | column -s "," -t
まとめ:columnコマンドで「見やすいLinux」を手に入れよう
今回学んだポイント:
column
コマンドは情報の見やすさを劇的に改善するLinuxユーザー必携のツール-t
オプションで表形式、-s
オプションで区切り文字を指定- システム管理、ログ解析、データ整形など幅広い用途で活用可能
- 大きなファイルではメモリ使用量に注意
実際に使ってみよう:
- 簡単なCSVファイルをcolumnで整形してみる
- psやdfコマンドの出力を整形してみる
- 日常のスクリプトにcolumnを組み込んでみる
- エイリアスを設定して効率化を図る
コメント