줄을 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/