나는 표 형식의 데이터를 표준 awk 레시피처럼 예쁜 열로 변환하고 싶지 않습니다. 매우 긴 텍스트를 신문 칼럼과 같은 칼럼으로 포맷하고 싶습니다.
예를 들어, 전송
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris tempus orci ut odio tincidunt, vel hendrerit ante viverra. Aenean mollis ex erat, ac commodo lectus scelerisque eget. Aenean sit amet purus felis. Aenean sit amet erat eget velit lobortis fermentum eget eget odio. Donec tincidunt rutrum varius. Nunc viverra ac erat id bibendum. Aenean sit amet venenatis arcu. Morbi enim enim, pulvinar sed velit in, sollicitudin tristique urna. In auctor ex vel diam sagittis, at placerat lacus sollicitudin. Sed a arcu dignissim, sodales odio ac, congue ante. Mauris posuere lorem varius tempor tincidunt. Etiam non metus ac nibh vulputate semper. Proin dapibus ullamcorper tortor, sed ultricies est euismod vel. Aliquam erat volutpat.
Phasellus at sem ornare, suscipit leo in, bibendum nulla. Sed fermentum enim id est feugiat, in commodo lectus fermentum. Sed quis volutpat felis. Donec turpis felis, dignissim vel mollis nec, pellentesque non odio. Aenean vitae sagittis libero, vel egestas diam. Nullam ornare purus quis eros euismod, viverra pretium turpis rhoncus. Etiam sagittis lorem non nisi molestie, ut dictum risus rhoncus.
입력하다
Lorem ipsum varius. Nunc non metus ac vel mollis nec,
dolor sit amet, viverra ac erat id nibh vulputate pellentesque
consectetur bibendum. Aenean semper. Proin non odio. Aenean
adipiscing sit amet venenatis dapibus ullamcorper vitae sagittis
elit. Mauris arcu. Morbi enim tortor, sed libero, vel egestas
tempus orci ut enim, pulvinar ultricies diam. Nullam ornare
odio tincidunt, sed velit in, est euismod purus quis eros
vel hendrerit ante sollicitudin vel. Aliquam erat euismod, viverra
viverra. Aenean tristique urna. In volutpat. pretium turpis
mollis ex erat, auctor ex vel rhoncus. Etiam
ac commodo lectus diam sagittis, Phasellus at sagittis lorem non
scelerisque at placerat lacus sem ornare, nisi molestie,
eget. Aenean sollicitudin. Sed suscipit leo in, ut dictum risus
sit amet purus a arcu dignissim, bibendum nulla. Sed rhoncus.
felis. Aenean sit sodales odio ac, fermentum enim
amet erat eget congue ante. Mauris id est feugiat,
velit lobortis posuere lorem in commodo lectus
fermentum eget varius tempor fermentum. Sed
eget odio. Donec tincidunt. Etiam quis volutpat
tincidunt rutrum felis. Donec turpis
felis, dignissim
\n
또한 너비가 채워진 후에는 두 번 "페이지 매김"을 수행해야 합니다.
답변1
fold
다음을 사용하여 텍스트를 나눌 수 pr
있습니다 .
이것이 파일인 경우 lorem.txt
:
Lorem ipsum dolor sat amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua. 정수 malesuada nunc vel risus commodo viverra maecenas accumsan lacus. Nec feugiat nisl pretium fusce id velit ut tortor pretium. Lacus sed turpis Tincidunt id. Nibh는 amet commodo nulla facilisi에 앉아 있습니다. metus vulputate eu scelerisque felis에서. Id nibh totortor id aliquet.
$ fold -w 20 -s lorem.txt | pr -3
2020-06-25 16:41 Page 1
Lorem ipsum dolor Integer malesuada turpis tincidunt
sit amet, nunc vel risus id. Nibh sit amet
consectetur commodo viverra commodo nulla
adipiscing elit, maecenas accumsan facilisi. In metus
sed do eiusmod lacus. Nec feugiat vulputate eu
tempor incididunt nisl pretium fusce scelerisque felis.
ut labore et dolore id velit ut tortor Id nibh tortor id
magna aliqua. pretium. Lacus sed aliquet.
답변2
당신은 그것을 사용할 수 있습니다fmt
단락을 원하는 열 너비로 포맷한 다음pr
열을 정렬합니다. GNU 버전에는 최소 POSIX 버전보다 더 많은 옵션이 있지만 둘 다 POSIX 유틸리티입니다.
열의 균형을 어떻게 맞추고 싶은지 이해가 안 되지만 이렇게 하면 시작됩니다.
fmt -w 20 | pr -4 -t -w 80
산출:
Lorem ipsum tincidunt rutrum tincidunt. Etiam fermentum. Sed
dolor sit amet, varius. Nunc non metus ac quis volutpat
consectetur viverra ac erat id nibh vulputate felis. Donec turpis
adipiscing bibendum. Aenean semper. Proin felis, dignissim
elit. Mauris sit amet venenatis dapibus ullamcorper vel mollis nec,
tempus orci ut arcu. Morbi enim tortor, sed pellentesque
odio tincidunt, enim, pulvinar ultricies non odio. Aenean
vel hendrerit ante sed velit in, est euismod vitae sagittis
viverra. Aenean sollicitudin vel. Aliquam erat libero, vel egestas
mollis ex erat, tristique urna. In volutpat. diam. Nullam ornare
ac commodo lectus auctor ex vel purus quis eros
scelerisque diam sagittis, Phasellus at euismod, viverra
eget. Aenean at placerat lacus sem ornare, pretium turpis
sit amet purus sollicitudin. Sed suscipit leo in, rhoncus. Etiam
felis. Aenean sit a arcu dignissim, bibendum nulla. Sed sagittis lorem non
amet erat eget sodales odio ac, fermentum enim nisi molestie,
velit lobortis congue ante. Mauris id est feugiat, ut dictum risus
fermentum eget posuere lorem in commodo lectus rhoncus.
eget odio. Donec varius tempor
답변3
현재 답변은 모두 를 사용 pr
하지만 column
다음과 같이 작동합니다.
$ fold -w 20 -s lorem.txt | column
Lorem ipsum dolor enim, pulvinar sed ornare, suscipit
sit amet, velit in, leo in, bibendum
consectetur sollicitudin nulla. Sed
adipiscing elit. tristique urna. In fermentum enim id
Mauris tempus orci auctor ex vel diam est feugiat, in
ut odio tincidunt, sagittis, at commodo lectus
vel hendrerit ante placerat lacus fermentum. Sed quis
viverra. Aenean sollicitudin. Sed a volutpat felis.
mollis ex erat, ac arcu dignissim, Donec turpis felis,
commodo lectus sodales odio ac, dignissim vel
scelerisque eget. congue ante. Mauris mollis nec,
Aenean sit amet posuere lorem pellentesque non
purus felis. Aenean varius tempor odio. Aenean vitae
sit amet erat eget tincidunt. Etiam sagittis libero,
velit lobortis non metus ac nibh vel egestas diam.
fermentum eget eget vulputate semper. Nullam ornare purus
odio. Donec Proin dapibus quis eros euismod,
tincidunt rutrum ullamcorper tortor, viverra pretium
varius. Nunc sed ultricies est turpis rhoncus.
viverra ac erat id euismod vel. Etiam sagittis
bibendum. Aenean Aliquam erat lorem non nisi
sit amet venenatis volutpat. molestie, ut dictum
arcu. Morbi enim Phasellus at sem risus rhoncus.
기본적으로 현재 터미널 너비에 맞는 만큼 많은 열을 배치합니다. -c
/specify 다른 너비를 사용할 수 있습니다 --output-width
.