Bash 打印,如何

Posted

技术标签:

【中文标题】Bash 打印,如何【英文标题】:Bash Printing, how to 【发布时间】:2012-06-06 21:54:21 【问题描述】:

用 bash 编写了一个脚本。现在我需要将信息带入文本文件,例如在 PostScript 中,但有一个问题。我需要有一定长度的字符串,并在页面布局的整个宽度上拉伸或收缩字符串。我试过a2psenscript,但没有这样的选择。请告诉我这个问题的解决方案,也许在 Ghostscript 中。如何更改字母间距以填充线条?提前致谢!

例如:

输入

aaa
bbbb
ccccccc

输出

a  a  a
b b b b
ccccccc

【问题讨论】:

我喜欢玩“猜猜我的剧本长什么样”。由于您没有发布任何代码,在这种情况下,我猜...您需要 fmt 命令。 fmtfold 命令不会拉伸或收缩文本。我不使用等宽字体。我需要通过更改字母间距来填充线条。 【参考方案1】:
sed -e 's/./& /g' -e 's/$/\\p/' < inputfile | groff -Tascii

使用 groff 进行调整,但 groff 只会调整单词,所以先使用 sed 让每个字符成为一个单词。如果您想要不同的字体或更好的打印等,您可以使用 groff 来输出 postscript。

【讨论】:

sed: -e expression #2, char 7: unterminated 's' command 分隔符丢失【参考方案2】:

您的流程基本上分为三个步骤:

    生成您的文本文件(例如您的 shell 脚本)

    打印格式(可能转换为 Postscript,例如通过 a2ps,可能完全是其他东西,例如“troff”)

    将格式化的结果输出到打印机(例如“lpr”)

【讨论】:

我需要在字符中有一定长度的字符串,并在页面布局的整个宽度上拉伸或收缩字符串。用什么命令或程序我可以做到这一点? 在 postscript 中,selectfont 和 setfont 操作符设置字体缩放。

以上是关于Bash 打印,如何的主要内容,如果未能解决你的问题,请参考以下文章

如何在macOS bash脚本中打印框绘图字符

如何在bash中查找和打印特定字符

BASH - 将新条目打印到包含行号的文件

Bash 中的 Echo 换行符打印文字 \n

如何将多行输入从标准输入读取到变量中以及如何在 shell(sh,bash)中打印出来?

在bash中匹配单词后的一行中打印特定字符串[重复]