awk - 如何删除数组并为标量变量重用相同的名称?

标签 awk

使用 GNU Awk 5.1.0 时,以下内容会引发错误:

$ awk 'BEGIN {tmp[1]; delete tmp; tmp = ""}' --
awk: cmd. line:1: fatal: attempt to use array `tmp' in a scalar context

显然,delete 语句不会删除不能作为标量变量回收的变量的数组限定符。有办法获得吗?

最佳答案

Apparently the delete statement does not delete the array qualifier of the variable which cannot be recycled as a scalar variable.

描述时的 GNU AWK 用户指南 Delete说的是

CAUTION: Deleting all the elements from an array does not change its type; you cannot clear an array and then use the array’s name as a scalar (i.e., a regular variable). For example, the following does not work:

a[1] = 3
delete a
a = 3

关于awk - 如何删除数组并为标量变量重用相同的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76820986/

相关文章:

linux - 对文本文件中的每个 id 运行命令

arrays - 将数组传递给 awk,其中包含需要打印的列号

xml - 使用 xmlstarlet 或 xmllint 获取属性值

linux - 删除两列中具有重复值的行

shell - 在 .csv 文件中使用 shell 脚本在逗号上拆分字符串但忽略双引号内的逗号?

linux - 需要帮助创建 pid 进程树

perl - 循环 - 提取记录文本直到下一条记录

python - 重复列值及其对应的非重复列的解决方案

linux - 使用 AWK 获取一组 COLUMNS 中的 UNIQUE VALUE 出现次数

perl - 千字节到人类可读。寻找一个类轮