Par: выравнивание текста без слияния

0

Par - отличный инструмент для форматирования текста.

Par объединяет текст и форматирует его до нового размера.

Может ли Par также выравнивать текст без объединения строк?

возможная ошибка

text text text text
text2 text2 text2 text2
txt txt txt txt txt 

оправдать до 30

text     text     text    text
text2   text2   text2    text2
txt    txt    txt    txt   txt 

Я прочитал руководство, не найдя решения.

Reman
источник

Ответы:

1

Я подозреваю, что ближайший вы можете получить с par это использовать j1 вариант в сочетании с очень тщательно выбранным w значение.

От http://www.nicemice.net/par/par-doc.var

j[<just>]   If <just> is 1, par justifies the OP, inserting spaces
            between words so that all lines in the OP have length
            <width> (except the last, if <last> is 0).  Defaults to
            0.  (See also the w, l, and f options.)

par ведет себя довольно патологически с вашим примером текста, я думаю, что он неправильно определяет префикс строки.

$ cat test2.txt
text text text text
text2 text2 text2 text2
txt txt txt txt txt

Лучшее, что я мог из этого получить, было

$ ./par -w23 -j1 -p0 -h0 <test2.txt
text  text   text  text
text2 text2 text2 text2
txt txt txt txt txt

Думаю попробую perlс возможно Text :: Автоформат и кормить autoformat по одной строке за раз.


Эта идея привела меня к довольно некрасивым, но довольно эффективным

$ perl -pe 's/$/\r\n123456789 123456789 123456789 /;' test2.txt| \
> ./par -w30 -j1 -l1 -p0 -h0 | \
> perl -ne 'print unless /^123456789 123456789 123456789 $/'
text    text     text    text
text2   text2   text2   text2
txt    txt   txt    txt   txt

Я не могу не чувствовать, что доступно гораздо более элегантное решение.

RedGrittyBrick
источник
TNX для ответа. Я старался par 30j1 но это не дает ожидаемых результатов. Это все еще соединяет линии.
Reman
@Remonn: обновлено.
RedGrittyBrick