【问题标题】:Convert single column to multiple rows with similar prefixes将单列转换为具有相似前缀的多行
【发布时间】:2022-11-07 13:03:49
【问题描述】:

考虑我有一个包含以下内容的文件

schem1.table1
schem1.table2
schem1.table3
schem2.table4
schem2.table5
schem2.table6
schem3.table7
schem3.table8

有可能像下面这样吗?

schem1.table1 schem2.table4 schem3.table7
schem1.table2 schem2.table5 schem3.table8
schem1.table3 schem2.table6

将有超过 3 个模式和不同的表。 .还需要它们在一个文件中的制表符分隔列中。

【问题讨论】:

    标签: unix


    【解决方案1】:

    我建议为此任务使用某种形式的脚本语言。

    AWK,尤其是 GAWK,会非常简单,但您熟悉的任何其他语言也可以使用。

    一个粗略的算法是读取每一行,将其拆分,然后为每个唯一模式创建一个多维表数组,将行添加到数组中的适当位置;然后在输入文件循环结束时遍历模式数组,连续打印每个表,并重复直到打印出最长的表数组。

    如果输入文件非常大并且您无法一次将其全部读入内存,那么您可以首先将其拆分为单独的文件,每个模式一个;然后从每个文件中读取每一行并连续打印值,再次继续直到最长的文件结束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多