텍스트 파일을 신문과 같은 열로 변환하는 방법은 무엇입니까?

텍스트 파일을 신문과 같은 열로 변환하는 방법은 무엇입니까?

나는 표 형식의 데이터를 표준 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.

조사하다pr그리고fold다른 옵션에 대한 매뉴얼 페이지.

답변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.

관련 정보