2

当一个人

process > file

只有在过程结束后,标准输出才会写入文件。有没有办法马上写出来?

即,我正在使用以下方法进行批量转换 odt2pdf:

libreoffice --convert-to pdf:writer_pdf_Export *.odt

所以 libreoffice 会说明哪些文件会被立即处理。但是当我这样做时:

libreoffice --convert-to pdf:writer_pdf_Export *.odt > log

这些信息只有在我关闭 libreoffice 后才会写入。(我想读取日志中的行数——这样我会在处理完所有文件后杀死 libreoffice)

编辑

我发现了一个 libreoffice 的命令行选项,我起初误解了它:--invisible- 所以它会在它必须做的事情之后杀死自己 - 所以我不需要自己杀死它 - 因此不再有问题了

4

1 回答 1

2

尝试

unbuffer libreoffice --convert-to pdf:writer_pdf_Export *.odt > log

一般读者请注意,unbuffer在旧式 Unix 平台中并不总是作为 std 二进制文件提供,并且可能需要搜索和安装包来支持它。

另请注意,OP @Adobe 发现libreoffice有一个--invisible解决问题的选项,即

libreoffice --invisible --convert-to pdf:writer_pdf_Export *.odt > log

我希望这有帮助。

于 2011-11-19T16:19:31.383 回答