Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
column - 入力を複数列に整形する
書式
column [options] [file...]
読者へのご注意
これは、util-linux 版の column コマンドのマニュアルである。column コマンドの実装には、いく つかの系統がある。御使用のディストリビューションが util-linux 版以外の column コマンドを採 用している場合は、 動作やオプションがここで説明しているものとかなり違っているかもしれな い。 そういうときは、英語版しかないかもしれないが、お手元の column コマンドに付属するマ ニュアルに当たってみていただきたい。
説明
column ユーティリティは入力を複数列形式に整形する。このユーティリティは 3 つのモードをサ ポートしている。 行 (row) より先に列 (column) を埋める これがデフォルトのモードである (後方互換のためそうなっている)。 列より先に行を埋める このモードはオプション -x, --fillrows で有効になる。 表形式 入力に含まれる列の数を判断して、表を作成する。このモードはオプション -t, --table で 有効になる。列のフォーマットは --table-* オプションで調整できる。どのモードを使うか 迷っているなら、このモードを使うとよい。 入力は file から読み込む。file が指定されていなければ、標準入力から読み込む。 空行は無視 し、無効なマルチバイトシーケンスはすべて \x<hex> 方式でエンコードする。
オプション
--table-* オプションに対する引き数 columns は、 列の名前または列の番号を、コンマで区切った リストである。列の名前は、--table-columns オプションで指定したものであり、列の番号は、入力 における列の順番だ。 列の名前と番号を混ぜて使うこともできる。 -J, --json 表の出力に JSON フォーマットを使用する。--table-columns オプションが必須であ る。--table-name オプションも指定した方がよい。 -c, --output-width width 文字 (character) 数で指定された幅に出力を整形する。 このオプションの元の名前は --columns だったが、その名前はバージョン 2.30 以来、非推奨になっている。デフォルト では、width より長い入力があっても、短縮されないことに注意していただきたい (訳注: 表を width の幅にきちんと収めるには、-t とともに -T か -W を指定する必要がある)。 -d, --table-noheadings ヘッダを表示しない。このオプションを使用すれば、 コマンドラインでは列の名前に便宜的 な名前を使っておいて、 表を表示する際にはヘッダを見せないようにすることができる。 -o, --output-separator string 表出力における列間の区切りを指定する (デフォルトはスペース 2 個)。 -s, --separator separators 表形式を選択したときに、入力項目の区切りに使える文字 (複数可) を指定する (デフォル トはホワイトスペース)。 [訳注] デフォルトでは、ホワイトスペース (スペースやタブ) の連続は 1 つのデリミタと して解釈される。それに対し、-s オプションで入力のデリミタに空白とタブを指定 したときは、空白やタブ 1 個 1 個が独立したデリミタとして扱われる。別の例を挙 げるなら、 -s "$%" と指定すると、$% という連続がデリミタになるのではなく、$ と % の両方が、それぞれデリミタとして扱われる。 -t, --table 入力に含まれる列の数を判断して、表を作成する。デフォルトでは、 列はスペースで区切ら れるが、--output-separator オプションを使って指定した文字で区切ることもできる。 表 形式の出力は、表示を見栄えのよいものにするのに便利である。 -N, --table-columns names 列の名前を、コンマで区切った名前のリストで指定する。 そうした名前は、表のヘッダに使 われたり、オプション引き数中で特定の列を指定するのに使われたりする。 -R, --table-right columns 指定した列でテキストを右詰めにする。 -T, --table-truncate columns 必要ならテキストを短縮してもよい列を指定する。 このオプションを指定しないと、表の中 の非常に長い項目は、何行かに渡って表示されるかもしれない。 -E, --table-noextreme columns 列の幅を計算する際、並外れて長い (平均より長い) セルがあった場合に、そうしたセルを 無視できる列を指定する。 このオプションは、列の幅の計算や表の整形には影響するが、表 示されるテキストには影響を与えない。 このオプションを指定しないデフォルトでは、このオプションの動作は、表示される最後の (訳注: すなわち、一番右の) 列に適用される。 -e, --table-header-repeat ページごとにヘッダ行を表示する。 -W, --table-wrap columns 長いテキストの表示に必要な場合に、複数行のセルを使うことのできる列を指定する。 -H, --table-hide columns 指定した列を表示しない。名前の付いていない列をすべて隠すには、列の名前や番号の代わ りに '-' という特別な引き数を使えばよい (--table-columns を参照)。 -O, --table-order columns 出力における列の順番を指定する。 -n, --table-name name JSON 出力に使う表の名前を指定する。デフォルトは "table" である。 -L, --table-empty-lines 入力中に空行があるたびに、表にも空行を挿入する。デフォルトでは、 空行はすべて無視す ることになっている。 -r, --tree column 出力をツリー状にする列を指定する。 なお、親子関係における循環などの変則的な指定 は、警告を出さずに無視される。 -i, --tree-id column 親子関係を生成するための「行 ID」が存在する列を指定する。 -p, --tree-parent column 親子関係を生成するための「親 ID」が存在する列を指定する。 -x, --fillrows 列を埋める前に行を埋める。 -V, --version バージョン情報を表示して、終了する。 -h, --help ヘルプを表示して、終了する。
環境変数
他に情報が得られない場合は、画面の幅を決定するために環境変数 COLUMNS が使われる。
用例
fstab をヘッダ行を付けて表示し、数値は右詰めにする: sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE,OPTIONS,PASS,FREQ --table-right PASS,FREQ 名前の付いていない列は隠して、fstab を表示する: sed 's/#.*//' /etc/fstab | column --table --table-columns SOURCE,TARGET,TYPE --table-hide - ツリー表示の例: echo -e '1 0 A\n2 1 AA\n3 1 AB\n4 2 AAA\n5 2 AAB' | column --tree-id 1 --tree-parent 2 --tree 3 1 0 A 2 1 |-AA 4 2 | |-AAA 5 2 | `-AAB 3 1 `-AB
バグ
バージョン 2.23 で -s オプションの動作を欲張りでなくした (訳注: 値が指定されていない場合 に、後続の値を利用しないようにした)。例を示そう。 printf "a:b:c\n1::3\n" | column -t -s ':' 従来の出力: a b c 1 3 新しい出力 (util-linux 2.23 以降): a b c 1 3 このツールの従来のバージョンでは、「デフォルトでは、列よりも先に行を埋める。 -x オプション はこの動作を反対にする」と述べていた。 しかし、この説明は、実際の動作を正しく反映していな かったので、その後訂正されている (「説明」セクションをご覧いただきたい)。column の他の実装 では、以前の説明を今でも使っているかもしれないが、 いずれにせよ、動作はどれも同じはずであ る。
関連項目
colrm(1), ls(1), paste(1), sort(1)
履歴
column コマンドは 4.3BSD-Reno で登場した。
入手方法
この column コマンドは、util-linux パッケージの一部であり、 https://www.kernel.org/pub/linux/utils/util-linux/ から入手できる。