【发布时间】:2013-04-13 22:38:12
【问题描述】:
我有一个数据集,我从 Google 电子表格剪切并粘贴到我的文本编辑器 (Sublime Text 2) 中,该数据集与我的处理需求不完全匹配。
在它来自电子表格的形式中,数据以一行字符串开始,每列一个字符串,然后是多行数据;在数据行中,每一列的值要么为1,要么为空白。我不知道数据来自电子表格时是否是制表符分隔的,但是在将其粘贴到文本文件中之后却不是。如果一行中的最后一个1不在最后一列,则该行将用空格填充,直到但不包括最后一列。
我尝试使用awk 做一些事情,但我不知道如何解决空格既是分隔符又是列值的事实。接下来,我用sed 尝试了一些命令,包括用零替换重复的空格,并用管道连接到另一个sed,用1 0 替换10,但后来我有时会插入额外的零,我不知道在哪里在发生的相应行中。
这是一些示例数据(实际文件中有 13 列)。我已将$ 添加为该行最后一个字符之后的字符,因此您可以看到这些行被填充了多远。
"1" "2" "3" "4" "1" "2" "3" "4"
1 1 $ 0 1 1 0
1 1 $ 1 0 0 1
1 $ 0 1 0 0
1 1 1 $ 1 1 0 1
我想得到类似右边的东西(然后我不关心行结束的地方),所以我可以用awk 处理它。
顺便说一下,我已经看到了this question,这并没有解决我的问题,因为那里的解决方案基于文件是制表符分隔的事实,在全部在“空”单元格中。重申一下,我的文件是用空格分隔的,空单元格中有空格。
【问题讨论】:
标签: awk text-files post-processing