【发布时间】:2015-09-01 07:57:48
【问题描述】:
我有一个这样的文件:
aaa b b ccc 345
ddd fgt f u 3456
e r der der 5 674
如您所见,我们可以分隔列的唯一方法是找到只有一个或多个空格的列。我们如何识别这些列并将它们替换为唯一的分隔符,例如,。
aaa,b b,ccc,345
ddd,fgt,f u,3456
e r,der,der,5 674
注意:
如果我们找到所有带有一个或多个空格的连续列(没有别的)并将它们替换为,(所有列),问题将得到解决。
josifoski 更好地解释了这个问题:
每个矩阵字符块,如果都是“空格”,那么所有块都应该在每一行上垂直替换为一个。
【问题讨论】:
-
什么定义了列?它们都是 3 个字符长吗?
-
f和u之间是一个空格,而fgt和f之间是多一个空格? -
为什么
b b是单列? -
哦对了,所以我们只需要找到由空格分隔的列,其中包含空格,以确定哪些列包含空格。
-
@josifoski 没有你可以在 python 中进行的文本操作,而你不能在 awk 中进行。事实上,我们看到许多编写 Python 脚本的人提出的问题,询问如何调用 awk 来操作 Python 脚本中的文本,但从来没有反过来。