距离在论坛发帖已经有一段时间了。 我一直在尝试在 bash 或 zsh 中找到解决方案 编程语言允许我将表格分类到文件中,稍后我可以使用文本字符串(包括时间和日期信息)进行更新,以跟踪我正在执行的任务。 在这样做的过程中,我开始研究 groff 的表, 它生成表。 我喜欢 groff,但我遇到的问题之一是它在表格前打印 7 个空行,在表格后打印 53 个空行。 这是 table.me 文件:
.TS
allbox;
c s s s
c c c c.
work hours
.TE
我将其显示到终端的命令是:
tbl Documents/tempdir/tmp18=.md| groff -me -T ascii
我在 os x Majove 10.14.6 上的 kitty 终端上的 zsh shell 中运行这些命令
这是输出:
+--------------+
| work hours |
+--+---+---+---+
| | | | |
+--+---+---+---+
为什么有这么多空白?为什么有这么多换行符? 我尝试用
修剪这些行tbl Documents/tempdir/tmp18=.md| groff -me -T ascii | sed -e 's/*[ ]*//'
groff 总是持续产生这么多换行符吗? 我已经尝试使用头和尾来隔离表,但这种方法的主要问题是在更改表时我还必须更改头和尾的值。有没有办法得到 groff 打印到标准输出而不进行此操作并后置空行?
格罗夫填满了这一页。默认页面为 11 英寸,因此有相当多的空白。有多种可能性:
.pl 10v
tbl t.tbl | groff -mwww -T ascii | sed '/^\s*$/d'
tbl t.tbl | groff -mwww -T ascii | sed -e :a -e '/^\n*$/{$d;N;ba' -e '}'
我认为我没有安装 groff,(不幸的是我在 Cygwin atm)但是...
tbl Documents/tempdir/tmp18=.md | groff -me -T ascii | tr -s ' ' | tr -d '\n'
如果我不了解的话,阅读这个网站会让我觉得我是唯一一个还记得 tr 的人;甚至更重要的是编辑。
groff(1)
文档建议使用来做到这一点
.pl \n[nl]u
将页面长度设置为当前垂直位置。
例如,您可以拥有如下管道:
{ tbl foo.md; printf %s '.pl \n[nl]u'; } | groff -Tutf8