gpt4 book ai didi

linux - 将标准输出通过多行管道传输到单个文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:50:16 25 4
gpt4 key购买 nike

我有一个 kafka 消费者反序列化 avro 消息并打印到标准输出。我想将输出通过管道传输到文件中,但希望每条消息都有一个单独的文件 - 而不是单个文件中的所有消息。

我搜索过谷歌,大多数人希望输出到多个文件或通过管道传输到另一个程序,这不是我想要做的。我需要将每条消息/行放入一个唯一的文件名中,或者带有计数器、输出的消息编号,或者精确到毫秒的日期。

输出格式如下:

AVRO MESSAGE (1): {Data in JSON format}
AVRO MESSAGE (2): {Data in JSON format}
AVRO MESSAGE (3): {Data in JSON format}
AVRO MESSAGE (4): {Data in JSON format}

我希望第 1 行进入名为 output1.txt 或 output20190518113126104 的文件,第 2 行进入名为 output2.txt 或 output20190518113126351 的文件其中带时间戳的名称是 YYYYMMDDHHmmssSSS 或类似的名称以确保它是唯一的。

最佳答案

使用带有选项 lsplit(行数)并计数 1

cmd | split -l1

当你想为你的输出文件添加前缀时,你可以使用

 split -l1 <(cmd) output

编辑:
正如评论中所建议的,您可以使用 -d 强制数字输出,并让 split 使用 - 从标准输入中读取。这使得:

cmd | split -l1 -d - output

关于linux - 将标准输出通过多行管道传输到单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56222716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com