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
使用。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
,也许文本::自动套用格式并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
我不禁感觉到还有一种更加优雅的解决方案。