小编use*_*262的帖子

在函数 awk 中声明的局部变量

我正在使用 awk。我想模块化我的代码,我想知道在函数中声明的变量是局部变量还是全局变量。例如

  main script
  update()

  function update()
  {
      array[1]="hi"
  }
Run Code Online (Sandbox Code Playgroud)

我想知道函数内部声明的数组是局部的还是全局的..如果不是局部的那么..awk中局部变量的概念是什么?

shell awk

3
推荐指数
1
解决办法
1936
查看次数

在awk中删除数组的下标/索引

我使用awk的概念将值存储为数组的下标/索引.请看下面的代码

stringVariable="hi,bye,cool.hot,how,see";
split(stringVariable,stringArray,",");

#This loop will iterate and stores the RIDs in the requestIds variable into an array
for(tr=1;tr<=length(stringArray);tr++)
{
Count++;
    referenceIdArray[stringArray[tr]]++;
}
Run Code Online (Sandbox Code Playgroud)

所以在我的referenceId数组中,我将有喜欢,再见,酷,热,怎么样,看

让我考虑一个具有以下值的示例文件

hi
bye
gone
Run Code Online (Sandbox Code Playgroud)

我的目标是从文件中获取值并与先前声明的数组匹配,如果任何值匹配则打印文件中的值

awk script

awk '{BEGIN (Array loading done previously)} {if($0 in referenceIdArray) {print $0}}'
Run Code Online (Sandbox Code Playgroud)

所以这会给我想要的结果.但是假设"hi"在数组中只出现一次,因此当动作块找到值时,应该打印该值,并且还应该删除数组中相应的条目referenceIdArray ["hi"].为了使搜索有效.由于它们存储为下标,我不知道如何删除条目.有关此问题的任何建议.谢谢.

shell awk

3
推荐指数
1
解决办法
1149
查看次数

标签 统计

awk ×2

shell ×2