ycatは「横cat」の意であり、catの横バージョンである。catで複数のファイルを指定すれば、先に指定されたファイルの最終行の下に次のファイルを結合するが、ycatの場合、先に指定されたファイルの最右端の先に結合する。先のファイルの右端位置が各行バラバラであるなら適宜スペースを追加して崩れないようにする。
更にycatは、結合する際に結合面にスペースを挿れるようになっている(デフォルトは1文字)。もし挿れたくなければオプションとして-0を指定すればよいし、もっと多くしたければ大きい数字を指定する。
例 ふたつのファイルをycatで連結
1 2 3 4 5 6 7 |
$ cat data1 1 2 3 4 5 6 $ cat data2 a b c d e f |
ycatで連結
1 |
$ ycat -3 data1 data2 > data3 |
するとこうなります。
1 2 3 4 |
$ cat data3 1 2 a b c 3 4 5 6 d e f |
tarrは「縦アレイ」、yarrは「横アレイ」の意。帳票作成向けの使い方もあるが、ここでは単純な列数調整コマンドとしての動きを紹介する。
両者共に一行あたりの列数を、オプションで指定された数に調整するためのコマンドであるが、tarrにはなるべく縦伸ばししようという性格が、yarrにはなるべく横伸ばししようという性格が与えられており、それによって動作仕様が若干異なる。
一つはオプションで列数が指定されなかった際のデフォルト値。tarrは1であり、無指定なら全要素を縦一列に並べる。一方yarrは無限大。よって無指定なら全要素を横一行に並べる。
もう一つは、改行コードの扱い。tarrは縦伸ばししようとするので元データの改行コードを消さない。よってオプションで指定した列数に満たない行が途中でも生じ得る(右図)。一方yarrは消すので、そのようなことはない。
同じ元データをtarr、yarrします。
1 2 3 4 5 |
$ cat data1 a b c d e f g h i j k l m l |
tarrは元データの改行を保持します
1 |
$ tarr -2 data1 > data_t |
tarrはオプションで指定した行数に満たない行が途中にも出ることがある。
1 2 3 4 5 6 7 8 9 |
$ cat data_t a b c d e f g h i j k l m l |
一方yarrは元データの改行を削除します。
1 |
$ yarr -6 data1 > data_y |
1 2 3 4 |
$ cat data_y a b c d e f g h i j k l m |