【发布时间】:2018-09-10 11:05:13
【问题描述】:
我在 awk 中有一个数组(vars),其中包括一组由数字和字母组成的字符串(例如 px0、px2 ...) 我想将这些字符串拆分为数字和字母并将它们放入另一个二维数组(comp)
vars[i]={px0,px2,...}-> comp[i,1]={px,px,...},comp[i,2]={0,2,...}
px0 ->px, 0
px2 ->px, 2
py4 ->py, 4
dxy17 ->dxy,17
我尝试使用子函数并将结果放入一个新数组中,
for (k=l; k<=length(vars); k++){
j=j+1;vars2[k]=vars[k];
sub(/[a-z]/,"",vars2[k])
comp[j,2]=vars2[k]
printf comp[j,2]
printf " "
sub(/[0-9]/,"",vars[k])
comp[j,1]=vars[k]
print comp[j,1]
}
但 sub 只从字符串中删除一个字符。
px0 -> px, x0
【问题讨论】:
-
请在您的帖子中的代码标签中发布输入和输出示例。
-
我为你缩进了代码,不过下次还是自己动手吧,有点尊重读者/回答者
-
拥有 150+ 的良好声誉,您现在应该开始在您的帖子中使用代码标签,请发布您想要达到的目标的示例。
-
@RaymondGhaffarianShirazi,在您的帖子中添加输入和预期输出示例。
-
这对我们来说是一个非常长的脚本的一部分,这对我们没有任何影响。创建一个带有自己的示例输入/输出的小脚本来演示您的问题(即minimal reproducible example),如果您希望帮助提出一个好的解决方案,请将其包含在您的问题中。否则,如果您根本没有得到任何答案,那么很可能是一些半支持的废话,做了您认为应该做的事情,但对您的应用程序来说确实是完全错误的。