특정 열 크기로 텍스트를 감싸는 방법은 무엇입니까?

특정 열 크기로 텍스트를 감싸는 방법은 무엇입니까?

줄을 80자 너비로 줄바꿈하는 것과 같은 방법을 사용할 수 있다는 것을 알고 있지만 cat test.txt | pr -w 80그렇게 하면 인쇄된 줄의 위쪽과 아래쪽에 많은 공간이 남게 되어 일부 시스템에서는 제대로 작동하지 않습니다.

긴 줄의 텍스트 파일을 특정 너비로 ​​줄 바꿈하는 가장 좋은 방법은 무엇입니까?

단어를 깨는 것을 막을 수 있다면 보너스 포인트입니다.

답변1

당신이 찾고있는

fold -w 80 -s text.txt
  • -w는 텍스트의 너비를 나타냅니다. 여기서 80은 표준 너비입니다.
  • -s는 단어 대신 공백에서 중단하도록 지시합니다.

이것은기준하지만 "-w" 대신 "-c"를 요구하는 다른 시스템도 있습니다.

답변2

또한 fold, 한번 보세요 fmt. fmt텍스트가 더 보기 좋게 보이도록 지능적으로 줄 바꿈을 선택해 보십시오. 긴 단어를 분리하지 않고 공백으로 묶습니다. 또한 인접한 줄을 연결하는데, 이는 산문에는 좋지만 로그 파일이나 기타 서식이 지정된 텍스트에는 좋지 않습니다.

답변3

$ cat shxp.txt

O, they have lived long on the alms-basket of words, I marvel thy
master hath not eaten thee for a word; for thou art not so long by the
head as honorificabilitudinitatibus: thou art easier swallowed than a
flap-dragon.

1​) 고정된 선 너비와 하이픈 넣기를 보장합니다.

fold -w 20 <shxp.txt

O, they have lived l
ong on the alms-bask
et of words, I marve
l thy master hath no
t eaten thee for a w
ord; for thou art no
t so long by the hea
d as honorificabilit
udinitatibus: thou a
rt easier swallowed
than a flap-dragon.

2) 고정된 선 너비와 뛰어난 하이픈 연결 기능을 보장합니다. 단어가 너무 커서 한 줄에 들어갈 수 없는 경우에만 단어가 손상됩니다.

fold -sw 20 <shxp.txt

O, they have lived
long on the
alms-basket of
words, I marvel thy
master hath not
eaten thee for a
word; for thou art
not so long by the
head as
honorificabilitudini
tatibus: thou art
easier swallowed
than a flap-dragon.

3​) 하이픈 없이 고정된 선 너비를 약속합니다. 단어가 너무 커서 한 줄에 들어갈 수 없으면 그대로 유지되므로 필요한 것보다 더 큰 줄이 생길 수 있습니다.

fmt -w 20 <shxp.txt

O, they have
lived long on the
alms-basket of
words, I marvel
thy master hath
not eaten thee
for a word; for
thou art not so
long by the head as
honorificabilitudinitatibus:
thou art easier
swallowed than
a flap-dragon.

fmt달리 들쭉날쭉한 단락 줄의 균형을 맞추려고 시도합니다 fold -s.

4) 아마도 이것은 프로그램 내부에서 사용되는 특수 마크업 언어 및 서식 유틸리티로 인해 문제를 해결하기 위한 가장 복잡한 인쇄 방법일 것입니다 man. 추가 사용자 정의의 엄청난 가능성:

2>/dev/null nroff <(echo .pl 1 ; echo .ll 20) shxp.txt

O,  they  have lived
long  on  the  alms‐
basket  of  words, I
marvel  thy   master
hath  not eaten thee
for a word; for thou
art  not  so long by
the head as  honori‐
ficabilitudinitati‐
bus: thou art easier
swallowed   than   a
flap‐dragon.

.pl 1 로프태그는 페이지 높이를 한 줄로 설정하여 페이징을 효과적으로 비활성화합니다.

.ll 20줄 길이를 20자로 설정합니다.

태그를 별도의 파일에 넣으면 명령이 단순화됩니다.

$ cat markup.roff
.pl 1
.ll 20
$ 2>/dev/null nroff markup.roff shxp.txt

유니코드를 사용 하려면 nroff다음을 사용하여 텍스트를 미리 변환할 수 있습니다 preconv.

$ 2>/dev/null nroff markup.roff <(preconv shxp.txt)

답변4

더 많은 서식 지정 옵션을 보려면 다음을 확인하세요 par.http://www.nicemice.net/par/

관련 정보