私はテーブル形式のデータを標準の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
また、幅が埋められたら、2回「ページ付け」を実行する必要があります。
答え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
。