スポンサーリンク

RS(1) FreeBSD 一般コマンドマニュアル RS(1)

名称

rs − データ配列の整形

書式

rs [

[               csCS][x] [                           kKgGw][N] tTeEnyjhHmz] [rows [cols]]

解説

rs ユーティリティは標準入力を読み込み、その各行が、配列を空白で区切った行 ベクトルであるとして解釈し、その配列をオプションに従って変換し、結果を標 準出力に書き出します。引数を指定しない場合、 rs は、端末で見やすいよう に、入力をカラム形式 (columnar format) に変換します。

入力配列の形状は、その行数と第 1 行目のカラム数から推測します。それが不都 合なら、 −k オプションによって最初の数行を読み飛ばし、より好都合な行を用 いることもできます。この他のオプションは、入力カラムの解釈を変更するもの です。

出力配列の形状は引数 rows および cols の指定により変化します。これらの引 数は正の整数です。それらの一方だけが正の整数である場合、 rs はデータ全体 と整合するもう一方の値を計算します。必要なら、オプションの説明に述べる方 法で不足したデータが追加され、余剰データが削除されます。行と列の転置な ど、出力カラム形式を変更するオプションもあります。

オプションを以下に示します。

       −cx

入力カラムの区切りを単一文字 x とします。 x を省略すると ‘^I’ で あると見なされます。

−sx
−c
と似ていますが、 x 中の最長文字列が区切りとされます。

−Cx
出力カラムの区切りを単一文字 x とします。 x を省略すると ‘^I’ で あると見なされます。

−Sx
−C
と似ていますが、文字列 x が区切り文字となります。

−t
入力配列の列データを用いて出力配列の行を埋めます。つまり、 rows および cols 指定を優先しつつ、入力を転置します。

−T
rows
および cols 指定を無視し、入力の純粋な転置結果を出力します。

−kN
入力の最初の N 行を無視します。

−KN
−k
と似ていますが、無視した各行を表示します。

−gN
溝 (gutter) の幅 (カラム間のスペース) を N とします。通常は 2 で す。

−GN
溝 (gutter) の幅 (カラム間のスペース) として、最大カラム幅の N パーセント増しの値を用います。

−e
入力の各行を単一の配列エントリとみなします。

−n
第 1 行目より少ないエントリしかない行があれば、その行にヌルエント リを追加して埋め合わせます。通常は、エントリの不足分は入力の次の 行からエントリをとって埋め合わせます。

−y
出力の寸法を充たすだけのエントリがない場合、入力を最初から繰り返 し用いて出力を埋め合わせます。通常は、出力は空白で埋め合わされま す。

−h
入力配列の形状を表示するだけで、処理は何も行ないません。形状とは 単に、行数と、第 1 行目のエントリ数のことです。

−H
−h
と似ていますが、各行の長さも表示します。

−j
カラム内でエントリを右揃えにします。

−wN
画面表示幅を正整数 N の値に設定します。通常は 80 です。

−m
出力配列の末尾から余分な区切り文字を削除しません。

−z
カラム幅を最も大きなエントリにあわせます。

引数がない場合、 rs は入力を転置し、無視しない最初の行が画面表示幅を越え ていなければ、入力の各行毎に 1 つの配列エントリがあると仮定します。数値引 数をとるオプションで数値指定が省略されていると、別途指示がない限り数値は 0 とみなされます。

使用例

rs ユーティリティはいくつかのプログラム (例えば、 spell(1), du(1), file(1), look(1), nm(1), who(1), wc(1)) のストリーム出力を、好都合な 「ウィンドウ」形式に変換するフィルタとして利用できます。例えば

      who | rs

これと同様な出力を行なうほとんどのプログラムに対して rs は十分な機能を提 供しますが、 ls(1) には既にこの機能が組み込まれています。

ストリーム入力をベクトルに変換して出力し、それをまた元に戻すには、次のよ うにします。

      rs 1 0 | rs 0 1

各要素が 1 から 100 までの乱数から成る 10 × 10 行列とその転置行列を生成す るには、以下のようにします。

      jot −r 100 | rs 10 10 | tee array | rs −T > tarray

vi(1) エディタにおいて、行あたり 9 要素の複数行ベクトルからなるファイルに 対して挿入や削除を行ない、その後 9 カラム形式に整形するには、次のようにし ます。

      :1,$!rs 0 9

最後に、あるデータベースを 4 行ずつのフィールドの最初の行でソートしたいな ら、以下のようにしてみるとよいでしょう。

      rs −eC 0 4 | sort | rs −c 0 1

関連項目

jot(1), pr(1), sort(1), vi(1)

バグ

2 次元配列しか扱えません。

現在のアルゴリズムはファイル全体をメモリに読み込むため、メモリに入りきら ないファイルは整形できません。

文字位置によってフィールドを定義することは、まだできません。

カラムを並べ換えることも、まだ不可能です。

オプションが多すぎます。

マルチバイト文字は認識されません。

FreeBSD 10.0 July 30, 2004 FreeBSD 10.0

スポンサーリンク