Как преобразовать текстовый файл в столбцы, как в газете?

Для получения журналов из ядра требуется другой подход, чем для получения журналов из службы.

Ядро хранит свои журналы в памяти в структуре, называемой кольцевым буфером ядра . Это доступно пользователю через специальный файл /dev/kmsg. По умолчаниюjournaldбудет читать этот файл. Таким образом, если journald пересылает все в rsyslog, он также будет пересылать сообщения ядра.

32
25.06.2020, 22:09
3 ответа

Вы можете использовать fold, чтобы разбить текст, а затем передать его в pr. Оба, скорее всего, доступны в вашей системе.

Если это файлlorem.txt:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Integer 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 sit amet commodo nulla facilisi. In metus vulputate eu scelerisque felis. Id nibh tortor 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, чтобы узнать о других параметрах.

42
18.03.2021, 23:24

Вы можете использоватьfmtдля форматирования абзацев до нужной ширины столбца, а затемprдля упорядочивания столбцов. Обе являются утилитами POSIX, хотя версии GNU имеют больше возможностей, чем минимум 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
34
18.03.2021, 23:24

Оба текущих ответа используют 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/ --output-width.

8
18.03.2021, 23:24

Теги

Похожие вопросы