【发布时间】:2020-05-17 00:39:48
【问题描述】:
文本文件中的内容有以下格式:
|1=X1|2=Y1|3=K1|4=J1|5=S1|
|1=X2|3=K2|4=J2|5=S2|
|1=X3|2=Y3|4=J3|5=S3|
...
所以有时会出现数据丢失,而我们想要的是如下所示的 csv 文件:
1,2,3,4,5
X1,Y1,K1,J1,S1
X1,,K2,J2,S2
X3,Y3,,J3,S3
...
关于丢失的数据,我真的不知道如何使用 Bash 进行操作。 大约有 500 万行包含 30 多列,我的想法是我们可能需要执行 30 次“if 子句”来检查并填写“,”以查找任何丢失的数据。这听起来不切实际,显然应该有更好的方法。
【问题讨论】:
-
阅读awk tutorial,尝试解决您的问题,然后编辑您的 Q 以展示您解决此问题的最佳尝试。然后我们可以帮助您解决问题。实际上,您在最后一段中添加到问题中的条件太宽泛了。像
awk '-F=' -vOFS="," '{gsub("|","",$0); print $1, $3, $5"\n" $2, $4, $6\n"}' file这样的东西将是值得体验的东西。此外,如下所述,鉴于只有 500 万行,我不会花时间尝试拆分数据。这应该在不到一分钟的时间内运行。祝你好运。 -
这看起来很有帮助。事实上,我遇到的主要问题是如何处理丢失的数据。我对 awk 很熟悉,但我不确定如何识别偶尔缺失的值并执行此操作“,”,让我尝试实现它!非常感谢!如果它在不到一分钟的时间内完成,那就太好了!感谢估价
-
链接无效?
标签: bash csv database-design datatable pcap