我有一个文件,其中包含如下数据:
1,2,3 4,5,6 7,8,9 12,22,0
有 4 列我想创建一个有 4 列的表a,b,c,d
,例如该列a
具有来自第一列的值,列b
具有来自第二列的对应值,依此类推..
在上面的示例中,列将如下所示:
a b c d
1 4 7 12
2 5 8 22
3 6 9 0
也没有。特定行的列中的条目数将相同。然而,这些条目对于不同的行可能是不同的,例如,有些行每列只能有 1 个逗号分隔的条目,有些甚至可以有 10 个。
目前还不清楚您希望如何命名列(用户输入,或者要使用的每列的预定义名称,或者其他方式)。
只是为了将字符串拆分为列,您可以使用
sed
:这里
sed
将整个字符串复制到缓冲区(h
),遍历循环中的行(:a
..ta
),从缓冲区(g
)获取复制的字符串,从每个部分(firsts
)获取第一个数字并打印它(p
),然后再次检索未触及的字符串,从中删除第一个数字(第二个和第三个s
)并将修改后的字符串放回缓冲区(h
)。当我们有,
字符串时,这会继续。一旦它消失了,我们只打印剩下的任何东西p
。您可以按以下方式完成所需的任务:
遵循的方法是通过从每列中选择前导列元素来调整要打印的行。
另一种方法可能是将列拆分为基于逗号拆分的数组。然后移出前导元素,直到我们用完任何子数组中的元素,因为每行,它们的数量是相同的。