Linux column コマンド
columnLinux システムの実用的なコマンドラインツールで、入力テキストを複数列表示にフォーマットします。元の乱雑なテキストデータを整然としたテーブル形式に再構成し、可読性を大幅に向上させます。
代表的な使用シーン:
- コマンド出力のフォーマット(例:
ls、psなど) - CSV や TSV データの整理
- 簡単なターミナル表の作成
- ログファイル内容の整列
基本構文
column [选项] [文件名]
ファイル名を指定しない場合、column標準入力からデータを読み取ります。
よく使うオプション引数
| オプション | 説明 |
|---|---|
-t |
入力の区切り文字を自動認識してテーブルを作成します |
-s sep |
カスタム列区切り文字を指定します(デフォルトは空白文字) |
-c width |
出力の全体幅を設定します(文字数) |
-x |
行を先に埋めてから列を埋めます(デフォルトは列優先) |
-o sep |
出力列の区切り文字を指定します(デフォルトはスペース2つ) |
-N names |
各列に名前を指定します(カンマ区切り) |
-n |
複数の連続する区切り文字を結合しません |
使用例
基本的なテーブル整形
実例
$ echo -e "Name Age GendernAlice 25 FnBob 30 MnCharlie 22 M" | column -t
Name Age Gender
Alice 25 F
Bob 30 M
Charlie 22 M
Name Age Gender
Alice 25 F
Bob 30 M
Charlie 22 M
CSV データの処理
実例
$ echo -e "ID,Name,Departmentn101,Alice,Salesn102,Bob,IT" | column -s, -t
ID Name Department
101 Alice Sales
102 Bob IT
ID Name Department
101 Alice Sales
102 Bob IT
出力区切り文字のカスタマイズ
実例
$ echo -e "1 2 3n4 5 6" | column -t -o " | "
1 | 2 | 3
4 | 5 | 6
1 | 2 | 3
4 | 5 | 6
他のコマンドとの組み合わせ
実例
$ ls -l | head -5 | column -t
total 48
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Desktop
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Documents
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Downloads
total 48
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Desktop
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Documents
drwxr-xr-x 2 user user 4096 Jan 10 09:30 Downloads
上級用法
不規則なデータの処理
実例
$ echo -e "Item:Price:StocknApple:1.2:50nOrange:0.8:30" | column -s: -t
Item Price Stock
Apple 1.2 50
Orange 0.8 30
Item Price Stock
Apple 1.2 50
Orange 0.8 30
列名の指定
実例
$ echo -e "Alice 25nBob 30" | column -N "Name,Age" -t
Name Age
Alice 25
Bob 30
Name Age
Alice 25
Bob 30
出力幅の制御
実例
$ echo -e "1 2 3 4 5n6 7 8 9 10" | column -c 30 -t
1 3 5 7 9
2 4 6 8 10
1 3 5 7 9
2 4 6 8 10
注意事項
- 区切り文字の処理:デフォルトでは、
column複数の連続する空白文字を1つの区切り文字と見なし、-nオプションでこの動作を無効にできます - 特殊文字:データにスペースやタブなどの区切り文字が含まれる場合は、区切り文字を明示的に指定することをお勧めします
- パフォーマンスの考慮:大きなファイルを処理する場合、
column多くのメモリを必要とする可能性があります - 配置(アライメント):すべての列はデフォルトで左揃えで、現在は配置方法を直接指定することはできません
代替案の比較
| ツール | 長所 | 短所 |
|---|---|---|
column |
シンプルで使いやすく、Linux 標準搭載 | 機能は基本的 |
awk |
柔軟性が高く、機能が強力 | 構文が複雑 |
pr |
ページングと列制御をサポート | オプションが複雑 |
paste |
ファイルの列の結合に適しています | フォーマット機能は限定的 |
実践演習
- あなたの
/etc/passwdファイルの最初の5行をテーブル形式で表示します(ヒント::を区切り文字として使用) - 試しに
columnコマンドでプロセスリストを整理しましょう(ps auxの出力) - 3列のデータを含むテキストファイルを作成し、異なる区切り文字で実験してください
-sオプションの効果
実例
# 練習1の解答例
head -5 /etc/passwd | column -s: -t
head -5 /etc/passwd | column -s: -t
を習得することで、columnコマンドを使用すると、乱雑なテキストデータを読みやすいテーブル形式に簡単に変換でき、これは日常のシステム管理やデータ処理で非常に実用的です。
その他の拡張機能
Linux コマンド大全