我正在循环中运行某些命令,并希望在 libreoffice (calc) 中打开其输出,而不存储它。
这是我尝试过的:
libreoffice --calc <(process m n)
libreoffice --calc < $(process m n)
process m n | libreoffice --calc
我在前两个中遇到错误,而对于第三个,它打开了 libreoffice,但没有文件!
但是,如果我将 的输出保存process
到文件f
并打开libreoffice f
,它就可以工作!
是我做错了什么,还是libreoffice的限制?我的问题是有什么办法可以避免本地存储吗?
答案1
看起来像是 LibreOffice 中的限制/缺失功能(?)。
我做了什么,作为test.csv
一个有效的 CSV 文件:
libreoffice --calc test.csv
test.csv
:按预期在“Calc”中打开cat test.csv | libreoffice --calc
:使用空白电子表格启动“Calc”
man libreoffice
状态 :
--calc 从新的 Calc 文档开始。
它没有提到从标准输入读取。
类似信息在这里:是否可以通过 STDIN 向 Open Office 提供数据?
避免本地存储的建议:
- 由于构建数据文件的命令是循环运行的,因此始终写入同一个文件。您将避免用临时数据填充存储
- 写入临时存储区域,例如
/tmp
- 写入
tmpfs
文件系统(mount | grep tmpfs
列出这些。通常/dev/shm
)