`
sunlujing
  • 浏览: 177939 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

awk 传入关联数组 shell变量作用域

 
阅读更多

我首先需要构建一个 time的关联数组,比如time[2010-01-01]=1;

第一个遇到的问题就是 

cat timeItem |while read item ;

do

    time[$item]=0

done 

使用这样的方法在后面使用time关联数组的时候一直是 空的。

原因: 使用管道的方式会开辟一个新的进程,估计time 是一个新的副本传入过去所以改变的值没有效果,

这是用管道编程的时候必须要注意;

使用如下方式就可以解决:

while read item ;

do

    time[$item]=0

done < timeItem.txt

 

在构建好time数组之后就是要考虑如何传入到awk 中,

网络上的说的使用 -v arry = "$time" 这种方式是不行的,

可行的方案就是 获得 time 的键的字符串,和 time的值得字符串,然后在 awk的 BEGIN{}语句中进行split划分在构建出 time 关联数组,代码如下:

 

cat $fileName|awk -F, -v s1="${time[*]}" -v s2="${!time[*]}" '

BEGIN{split(s1,s3," ");split(s2,s4," ");for (i=1;i<=length(s4);i++) res[s4[i]]=s3[i];}

 

1
3
分享到:
评论
2 楼 sunlujing 2013-08-04  
bruce.yuan 写道
没明白你这是要干嘛

主要就是记录下 如何awk 如何引用 shell中的关联数组~
1 楼 bruce.yuan 2013-08-04  
没明白你这是要干嘛

相关推荐

    linux Shell脚本里面把一个数组传递到awk内部进行处理

    前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法。前两天在QQ群里讨论awk的时候,无意间又聊起这个话题。机缘巧合之下找到一个思路,特此分享。 测试环境...

    Linux Awk数组操作详细介绍

    在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。例如:  一、定义方法  1:可以...

    linux shell awk获得外部变量(变量传值)简介

    这次主要说下,怎么样把外部变量传入到awk执行语句中。 一、基础: awk [ -F re] [parameter…] [‘pattern {action}’ ] [-f progfile][in_file…] awk一般语法如上面所说。 如: 代码如下:[chengmo@

    用awk数组处理两个文件

    主要讲解了关于shell中用awk数组处理文件的用法

    awk 介绍,unix shell

    awk 介绍.awk unix shell

    awk&amp;sed 详解

    awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell

    生成awk测试文件的shell脚本文件

    生成awk测试文件的shell脚本文件,文件共有两个参数(可全部留空),第一个参数是生成的新文件名称,第二个参数是key值名称,也就是内部的重复循环部分的字符串

    awk 用法变量名 含义

    awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 &gt;100 ' file awk '$2 &gt;5 && $2&lt;=15' file

    shell中的awk命令

    shell中的awk命令 文章目录shell中的awk命令1.awk–“样式扫描和处理语言”2.awk模式匹配3.记录和域4.指定分隔符`-F “”` 指定分隔符`FS=””` 指定分隔符5.关系和布尔运算值6.表达式7.系统变量8.格式化输出9.内置...

    awk数组.xmind

    自己总结的awk数组相关的思维导图文件,可以下载xmind进行打开,第一次上传文件,多多赐教

    Unix基础、AWK、SHELL

    Unix基础、AWK、SHELL 正则表达式.doc 编辑器.doc Unix基础知识与Shell编程.doc

    UNIX Shell awk sed 实例 精解 (第4版)

    linux下常用脚本命令集合 : awk sed bash shell Shell范例精解(第4版)

    shell、awk编程教材

    shell、awk编程教材

    Shell AWK使用手册

    SHELL AWK使用手册,供大家参考学习

    shell awk脚本总结.txt

    我们必须的工具有两个一个是shell一个是awk,awk对于处理文本文件是最最适合的掌握了awk我们就可以很方便的处理文本文件再借助一些shell命令我们可以很方便得到自己想要的结果。现在从简单的例子来总结一下我觉得会...

    Shell脚本之awk篇

    awk 是一种编程语言,用于在 linux/unix 下对文本和数据进行扫描与处理。数据可 以来自标准输入、文件、管道。

    AWK编程实例指南.rar_AWK ns2_awk_awk unix.shell_awk编程实例

    在UNIX的Shell里经常用到的AWK系列命令的详细例子介绍.

    shell awk实用实例教程

    shell awk 实用程序 介绍awk的使用用例 对于处理文件内容比较方便 供学习参考使用

    awk sed3 linux shell

    想了解shell字符串处理神器的看下咯,各种意外使用用法

Global site tag (gtag.js) - Google Analytics