각 행 집합을 새 열로 이동하는 방법은 무엇입니까?

각 행 집합을 새 열로 이동하는 방법은 무엇입니까?

이런 식으로 각 행 그룹을 열로 이동하고 싶습니다.

입력하다:

R1C1
R2C1
R3C1
R1C2
R2C2
R3C2
R1C3
R2C3
R3C3

산출:

R1C1 R1C2 R1C3
R2C1 R2C2 R2C3
R3C1 R3C2 R3C3

아래에 몇 가지 실제 사례도 추가했습니다.

입력하다:

8.097e-10
7.099e-10
6.638e-10
6.395e-10
6.258e-10
6.180e-10
6.134e-10
6.108e-10
6.093e-10

산출:

8.097e-10 6.395e-10 6.134e-10
7.099e-10 6.258e-10 6.108e-10
6.638e-10 6.180e-10 6.093e-10

답변1

당신은 그것을 사용할 수 있습니다섭외주문하다:

pr -T -3 input_file > output_file
  • -33개의 열이 있다는 뜻입니다.
  • -T출력 페이지 매김 생략

답변2

만약 너라면진짜이는 awk를 사용하여 수행해야 하며, 모듈로 3의 레코드 번호로 인덱스된 배열을 사용할 수도 있습니다.

awk '{i = (NR-1)%3; a[i] = a[i]? a[i] OFS $0 : $0} END{for(i=0;i<3;i++) print a[i]}' file
R1C1 R1C2 R1C3
R2C1 R2C2 R2C3
R3C1 R3C2 R3C3

만약에 rs(아르 자형이자형에스hape) 유틸리티를 사용할 수 있는 경우

rs 0 3 < file | rs -T

또는

paste - - - < file | rs -c -T

답변3

$ cat test.txt
R1C1
R2C1
R3C1
R1C2
R2C2
R3C2
R1C3
R2C3
R3C3

$ awk '{Arr[substr($0,1,2)]=Arr[substr($0,1,2)]" "$0}END{for (i in Arr){print Arr[i]}}' test.txt
 R1C1 R1C2 R1C3
 R2C1 R2C2 R2C3
 R3C1 R3C2 R3C3

관련 정보