긴 출력을 두 개의 열로 분할

긴 출력을 두 개의 열로 분할

내 스크립트 중 하나의 출력을 열화할 수 있는 간단한 유틸리티나 스크립트가 있습니까? 어떤 형태의 데이터가 있습니다.

A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn
F kjhnakjshddnaskjdh

그러나 이것이 두 개가 길어지면 다음과 같이 데이터를 작성하십시오(여전히 수직으로 정렬되어 있음).

A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh

매뉴얼 페이지를 읽어보니 이것이 적합하지 않다고 생각 column하지만 잘 모르겠습니다. 다음과 같은 형태로 쉽게 나눌 수 있습니다.

A B 
C D 
E F

다른 모든 줄을 인쇄하세요 \n(현재 스크립트가 수행하는 작업). 어떤 아이디어가 있나요? 감사해요!

답변1

column당신이 원하는 것 같습니다 :

$ cat file
A aldkhasdfljhaf
B klajsdfhalsdfh
C salkjsdjkladdag
D lseuiorlhisnflkc
E sdjklfhnslkdfhn

$ column file
A aldkhasdfljhaf    D lseuiorlhisnflkc
B klajsdfhalsdfh    E sdjklfhnslkdfhn
C salkjsdjkladdag   F kjhnakjshddnaskjdh

답변2

출력을 열로 정렬하려면 pr인쇄용 텍스트 파일을 변환하십시오.

-COLUMN, --columns=COLUMN: output COLUMN columns
      and print columns down, unless -a is used.

-t, --omit-header : omit page headers and trailers

예를 들어

ls /etc | pr -2 -t
abrt                                gtk-2.0
acpi                                hal
adjtime                             hba.conf
agent.properties                    host.conf
aliases                             hosts
aliases.db                          hosts.allow
...

답변3

파일을 두 부분(동일한 줄 수 또는 첫 번째 파일에 한 줄이 더 있음)으로 분할하고 다음을 수행할 수 있습니다.

paste file1 file2

줄의 길이가 너무 다양하면 printf를 사용하여 공백을 채워 길이를 조정해야 할 수도 있습니다.

답변4

다음을 간단히 사용할 수 있습니다 columns.

$ cat test.txt | columns
A aldkhasdfljhaf             B klajsdfhalsdfh             C salkjsdjkladdag
D lseuiorlhisnflkc           E sdjklfhnslkdfhn            F kjhnakjshddnaskjdh

노트:이 명령은 내 Fedora 14 시스템 패키지의 일부입니다 columns.autogen

$ rpm -qf /usr/bin/columns
autogen-5.9.4-7.fc12.x86_64

인용하다

관련 정보