在 Mac OS 上使用bash
来编辑一些man
页面供我自己使用。
在 Mac OS 中,该命令open -t filename
将在系统默认的文本编辑器中打开指定的文件。
$ man somepage | col -b
将正确呈现指定man
页面。我想做的是在文本编辑器中打开渲染的手册页。我可以按如下方式完成此操作:
man somepage | col -b > filename && open -t filename
我可能应该对此感到满意,但我的大脑认为必须有一种“更好的方法”仅使用管道和重定向来完成此操作。另外,上面的命令往往会在我的文件系统中“乱扔”我可能不需要保留的文件 - 因此需要另一个步骤来删除这些残留物。理想情况下,我可以在编辑器中打开渲染的手册页,而无需文件名或在每次调用时都会被覆盖的通用文件名。我已经花了大约一个小时来思考这个问题,尝试不同的事情,但无济于事。
对我来说最有意义的是:
$ open -t < man somepage | col -b
或这个:
$ open -t &1 < man somepage | col -b
但这当然是行不通的,因为 shell 将其man
作为文件名。我是否已经接近做对了?我的尝试是不是很愚蠢?
答案1
您可以传递open
该-f
标志以让它从标准输入读取内容并在文本编辑器中打开它们,这使得它可以在管道中使用。
所以像这样的事情应该做你想要的:
man somepage | col -b | open -tf
也可以看看:
- 这手册页对于
open
命令(也可以man open
从您的终端) - macOS 打开命令在 OS X 脚本编写