小编msc*_*woj的帖子

将STDIN拆分为多个文件(如果可能,将其压缩)

我有程序(gawk)将数据流输出到其STDOUT.处理的数据实际上是10英镑.我不想将它保存在单个文件中,而是将其拆分为块,并可能在保存之前对每个文件应用一些额外的处理(如压缩).

我的数据是一系列记录,我不想拆分将记录减半.每条记录都匹配以下正则表达式:

^\{index.+?\}\}\n\{.+?\}$

或者为了简单起见,可以假设两行(首先是不均匀的,甚至在从流的开始编号时)始终记录.

我可以吗:

  • 使用一些标准的linux命令通过定义块的优选大小来拆分STDIN?不需要精确给定记录变量大小不能保证它.或者只是def的记录数量.按大小不可能
  • 压缩每个块并存储在一个文件中(在其名称中有一些编号,如001,002等..)

我已经意识到像GNU并行的命令,csplit但不知道如何把它放在一起.如果上面解释的功能可以在不编写自定义perl脚本的情况下实现,那将是很好的.然而,这可能是另一个,最后的解决方案,但再次,不知道如何最好地实现它.

stdin split file gnu-parallel

6
推荐指数
1
解决办法
2763
查看次数

标签 统计

file ×1

gnu-parallel ×1

split ×1

stdin ×1