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, du, file, look, nm, who, 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 차원 배열 밖에 취급할 수 없습니다.

현재의 알고리즘은 파일 전체를 메모리에 읽어들이기 (위해)때문에, 메모리에 들어가 싫은 있고 파일은 정형할 수 없습니다.

캐릭터 위치에 의해 필드를 정의하는 것은, 아직 할 수 없습니다.

컬럼을 늘어놓고 바꾸는 일도, 아직 불가능합니다.

옵션이 너무 많습니다.