prコマンドを特殊利用

prのmanページの説明には、
「pr – convert text files for printing」
と、あります。
その通りとは思いますが、prは印刷のためにだけ存在してるってわけでもありません。

seq 40 | pr -t5J
1       9       17      25      33
2       10      18      26      34
3       11      19      27      35
4       12      20      28      36
5       13      21      29      37
6       14      22      30      38
7       15      23      31      39
8       16      24      32      40

seq 40の結果を5列で表示してみました。

次は日付を並べてみます。

~$ for i in `seq 0 30`
> do date +%F --date "20160401 $i days"
> done | pr -t5Ja
2016-04-01      2016-04-02      2016-04-03      2016-04-04      2016-04-05
2016-04-06      2016-04-07      2016-04-08      2016-04-09      2016-04-10
2016-04-11      2016-04-12      2016-04-13      2016-04-14      2016-04-15
2016-04-16      2016-04-17      2016-04-18      2016-04-19      2016-04-20
2016-04-21      2016-04-22      2016-04-23      2016-04-24      2016-04-25
2016-04-26      2016-04-27      2016-04-28      2016-04-29      2016-04-30
2016-05-01
~$ 

横方向に並べてみました。
このようにprを使うことで、テキスト整形の幅が広がりますね。

columnでも似たようなことはできます。こちらはやや指定方法が異なります。
以下の例では一行の文字数が40文字以内に収まるように整形しています。

seq 40 | column -c40
1       9       17      25      33
2       10      18      26      34
3       11      19      27      35
4       12      20      28      36
5       13      21      29      37
6       14      22      30      38
7       15      23      31      39
8       16      24      32      40

目的次第ですが、コマンド自体の文字数が少ないため、私はprの方をよく使います。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA