我首先需要构建一个 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];}
相关推荐
前段时间和几位同事讨论过一个问题:Shell脚本里面怎样把一个数组传递到awk内部进行处理? 当时没有找到方法。前两天在QQ群里讨论awk的时候,无意间又聊起这个话题。机缘巧合之下找到一个思路,特此分享。 测试环境...
在 awk 中数组叫做关联数组(associative arrays),因为下标记可以是数也可以是串。awk 中的数组不必提前声明,也不必声明大小。数组元素用 0 或空串来初始化,这根据上下文而定。例如: 一、定义方法 1:可以...
这次主要说下,怎么样把外部变量传入到awk执行语句中。 一、基础: awk [ -F re] [parameter…] [‘pattern {action}’ ] [-f progfile][in_file…] awk一般语法如上面所说。 如: 代码如下:[chengmo@
主要讲解了关于shell中用awk数组处理文件的用法
awk 介绍.awk unix shell
awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell awk&sed 详解 shell
生成awk测试文件的shell脚本文件,文件共有两个参数(可全部留空),第一个参数是生成的新文件名称,第二个参数是key值名称,也就是内部的重复循环部分的字符串
awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk '$2 >5 && $2<=15' file
shell中的awk命令 文章目录shell中的awk命令1.awk–“样式扫描和处理语言”2.awk模式匹配3.记录和域4.指定分隔符`-F “”` 指定分隔符`FS=””` 指定分隔符5.关系和布尔运算值6.表达式7.系统变量8.格式化输出9.内置...
自己总结的awk数组相关的思维导图文件,可以下载xmind进行打开,第一次上传文件,多多赐教
Unix基础、AWK、SHELL 正则表达式.doc 编辑器.doc Unix基础知识与Shell编程.doc
linux下常用脚本命令集合 : awk sed bash shell Shell范例精解(第4版)
shell、awk编程教材
SHELL AWK使用手册,供大家参考学习
我们必须的工具有两个一个是shell一个是awk,awk对于处理文本文件是最最适合的掌握了awk我们就可以很方便的处理文本文件再借助一些shell命令我们可以很方便得到自己想要的结果。现在从简单的例子来总结一下我觉得会...
awk 是一种编程语言,用于在 linux/unix 下对文本和数据进行扫描与处理。数据可 以来自标准输入、文件、管道。
在UNIX的Shell里经常用到的AWK系列命令的详细例子介绍.
shell awk 实用程序 介绍awk的使用用例 对于处理文件内容比较方便 供学习参考使用
想了解shell字符串处理神器的看下咯,各种意外使用用法