我正在尝试在字母和数字之间进行分隔,但使用预测失败的解决方案:
echo 50cats30dogs100squirrels | awk '{split($0,a,/(?<=\D)(.*)(?=\d)/); print a[1],a[2],a[3]}'
awk: illegal primary in regular expression (?<=\D)(.*)(?=\d) at <=\D)(.*)(?=\d)
source line number 1
context is
>>> {split($0,a,/(?<=\D)(.*)(?=\d)/) <<<
有没有其他方法可以在Awk中完成这个操作?
编辑:
抱歉之前表述不够清晰。期望的输出结果只需要像这样添加空格:
50 cats 30 dogs 100 squirrels
awk
不支持向前或向后查找,如果您在问题中提供样本输入和输出,我们可以更清楚地了解情况并尝试在这里提供帮助,谢谢。 - RavinderSingh13a
应该包含什么内容?我不确定你是想要数字还是单词。 - glenn jackman50cats30dogs100squirrels
->50 cats 30 dogs 100 squirrels
实际上是2S5M1I^ATAG1I3M1D5M
->SSMMMMMI^^^^IMMMDMMMMM
? - James Brown