写入文件直到达到一定大小,然后开始新文件

我正在使用命令行工具twarc将 Twitter 数据下载为 csv。我已经设置了 twarc 命令,它们在命令行上成功执行,没有问题。命令示例:

twarc dosomething > outputfile.jsonl

虽然我想在较长时间内执行收集过程,但运行一天多后输出文件变得有点太大(10+GB)。

我想运行一个执行 twarc 命令的 bash 脚本,运行直到输出文件达到一定限制,然后启动一个新文件。

这些问题是相关的...

...尽管我的翻译运气不佳。

任何人都可以提供一些有关设置基本 bash 脚本来执行命令、等待文件增长到 X 大小,然后重新开始处理新文件的见解吗?可以从那里拿走...


江户川乱折腾
浏览 63回答 2
2回答

撒科打诨

您正在寻找的工具的名称很恰当split:twarc dosomething | split -b 10G如果您想避免在文件之间分割行,您也可以通过行计数来执行此操作,但您无法指定大小:twarc dosomething | split -l 10000000

慕容森

另一个工具是logrotate.它通常按计划运行,cron并在其配置文件中指定要拆分的日志文件、如何、何时、存档、邮件以及要保留多少历史记录。这样做的好处logrotate是您的应用程序根本不需要实现任何日志轮换策略。他们只需要将日志写入文件或stdout重定向到文件中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python