ベストアンサー1
POSIXは既存の動作をエンコードすることを好み、既存の動作が満足できない場合に広く採用されていない新機能のみを適用します。最近では、データを表示するために固定幅フォントの書式なしテキストを使用する必要がないため、要件にcolumn
なる可能性はほとんどありません。 BSDから派生したBSDとは異なり、pr
System Vやその他の歴史的なユニスには存在しないため、継承はありません。
他のテキストユーティリティと同様に、適切なワークロードを使用してawkとして表現できます。これは最小限にテストされましたcolumn -t
。単純な場合(ただ1文字)、awkのオプションは-F
sに似ています。column
-s
#!/usr/bin/env awk
{
if (max_column < NF) max_column = NF;
for (i = 1; i <= NF; i++) {
if (width[i] < length($i)) width[i] = length($i);
data[NR, i] = $i;
}
}
END {
for (i = 1; i < max_column; i++) format[i] = sprintf("%%-%ds ", width[i]);
format[max_column] = "%s\n";
for (k = 1; k <= NR; k++) {
for (i = 1; i <= max_column; i++) printf format[i], data[k, i];
}
}