잘리지 않고 여러 열을 인쇄하는 방법은 무엇입니까?

잘리지 않고 여러 열을 인쇄하는 방법은 무엇입니까?

pr -m -t file1 file2나는 이것이 다음과 같은 두 개의 열을 제공한다는 것을 알고 있습니다 .

파일 1:

a
abc
abcdefg
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

파일 2:

1
123
12345678
12345678901234567890

-

$ pr -m -t file1 file2
a                   1
abc                 123
abcdefg                 12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890

위의 내용은 문자 그대로 잘라서 붙여넣은 것이지만 여기에는 터미널에서 실제로 어떻게 정렬되는지 보여주기 위해 공백을 추가했습니다.

$ pr -m -t file1 file2
a                                   1
abc                                 123
abcdefg                             12345678
abcdefghijklmnopqrstuvwxyzabcdefghi 12345678901234567890

어떤 이유로 unix스택 교환은 코드 블록을 견고하게 만들지 않습니다. 어쨌든 줄 번호 일치는 필요하지 않습니다(그러나 일반적인 질문에 답하려면 어떻게 해야 하는지 대답할 수도 있습니다). 하지만 제가 원하는 주요 속성은 줄 번호를 자르는 대신 줄 바꿈하는 것입니다. 각 파일을 특정 너비로 ​​전처리하고 파이프로 연결하는 것 외에는 선택의 여지가 없나요? 그렇다면 어떻게 해야 합니까?

command업데이트: 파일 너비를 제한하고 개행을 강제하는 방법이 있다면 다음과 같이 할 것이라고 생각했습니다 .pr -m -t <(command file1) <(command file2)

답변1

편집하다:

정렬이 걱정되시나요?

Perl 스크립트를 가져와서 찾으면여기, 작성자피터 스투이잔더columnFix.perl, 이름을 지정합니다 chmod u+x columnFix.perl(실행할 수 있는지 확인하려면 다음을 수행하세요.

pr -J -m -t file1 file2 | /path/to/columnFix.perl

원래 답변:

I 버전은 pr기본적으로 행을 72자로 자릅니다. 2개의 열은 첫 번째 열을 35자로 자릅니다 (35 char/column * 2 columns) + 1 char/separator = 71 characters(따라서 두 번째 열은 36자가 될 수 있음).

따라서 동의한다면 실행하는 동일한 명령을 사용하여 -J찾고 있는 것처럼 보이는 작업을 수행해야 합니다(원래 명령에 최대한 가깝게).열 정렬 없음(댓글에서 제안한 붙여넣기 명령의 결과와 유사합니다)

pr -J -m -t file1 file2

매뉴얼 페이지에서:

-J, --연결선

전체 줄을 병합하고 -W 줄 잘림을 끄고,열 정렬 없음, --sep-string[=STRING] 구분 기호 설정

관련 정보