Par:对齐文本而不连接线

Par:对齐文本而不连接线

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 

我已阅读手册但未找到解决方案。

答案1

我怀疑您能得到的最接近的答案是将该选项与一个非常仔细选择的值结合par使用。j1w

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,也许文本::自动套用格式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

我不禁感觉到还有一种更加优雅的解决方案。

相关内容