尝试在标量上下文中使用数组 's'

  • 本文关键字:数组 标量 上下文 awk
  • 更新时间 :
  • 英文 :


我不明白为什么会弹出这个错误。我要去掉s,否则每次迭代都会递归地增加s。它只是整个代码的一部分,但足以重现错误。

echo M134K123G543 | awk '{

delete(s)
n = patsplit($0, b, /[^[:digit:]]/, seps);
for (i=0; i<=n-1; i++) {
for (j=1; j<=seps[i]; j++) {
s=s b[i+1]
}
}
print s
}1'
awk: cmd. line:10: (FILENAME=- FNR=1) fatal: attempt to use array `s' in a scalar context

因为s是您要连接到的字符串:s=s b[i+1]。然后你就会想这是一个你要删除的数组:delete(s)。如果您想将s作为字符串删除,不要将其作为数组删除—只需"擦除"即可。作为字符串:s=""

最新更新