shell dict 操作
shell 读取文件,利用dict 合并第一列 。
#!/bin/bash
result_file="a"
declare -A mydict total=`cat ${result_file}.bak| wc -l `
count= #cat ${result_file}.bak | while read campid devid needmd5
while read campid devid needmd5
do
#echo "$campid devid: $devid "
if [ -z "${mydict[$devid]}" ]; then
#echo "if $devide "
#mydict=([$devid]=$campid)
#export
mydict+=([$devid]="$campid")
echo "aaafter mydict keys ${!mydict[*]} "
else
#$mydict[$devid]+="," + $campid
mydict+=([$devid]+=","$campid)
fi ((count+=))
#文件读结束时候输出所有keys
if [ $count -eq $total ]; then
echo "count : $count "
echo "bbbfter mydict keys ${!mydict[*]} "
fi
echo "before return ${!mydict[*]} "
done < ${result_file}.bak echo "before return ${!mydict[*]} " #echo ${!mydic[*]}
echo "after mydict keys ${!mydict[*]} " echo "ccc $ccc "
for key in $(echo ${!mydict[*]})
do
echo " k: $key : ${mydict[$key]}"
done
开始读时候用 cat ${result_file}.bak | while read campid devid needmd5 的形式,最后
mydict的keys 一直为空,最后薛大佬帮忙修改为从文件中读 不用管道的形式解决。 a.bak 文件内容
188302021 b20892db-485d-4ae9-af77-f75791af824a 0
183935026 DC3FC748-EAFD-4D4A-8F64-B9F3517EF549 0
183935026 9B9E985A-3F1F-4D76-A15E-E5B79F5E85FD 0
183935026 75E9144A-2A42-4F32-973D-BF77DF5A25AF 0
shell dict 操作的更多相关文章
- shell脚本操作mysql数据库
shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql -hhostname -Pport -uusername -pp ...
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
- shell脚本操作mysql库
shell脚本操作mysql数据库-e参数执行各种sql(指定到处编码--default-character-set=utf8 -s,去掉第一行的字段名称信息-N) 2011-05-11 18:18: ...
- Mongodb DB shell数据操作
shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help(); db.yo ...
- 第十一章、认识与学习 BASH Bash Shell 的操作环境
bash中的变量动不动就说环境变量,真是奇怪,bash只是一个c语言编写的程序而已,跟环境变量有什么关系?如果知道dos的历史的话就知道有个时代是只有命令行界面而没有图形用户界面,这只小小的程序就包揽 ...
- shell指令操作memcached
shell指令操作memcached,可以用来直接测试memcached. 初始值为1000 #set test-value =1000printf "set test-value 0 0 ...
- linux下各种形式的shell加法操作总结
linux 下shell加法操作总结: #!/bin/bash n=1;echo -n "$n " let "n = $n + 1" echo -n & ...
- Shell字符串操作
@1:子串削除 ${string#substring} 从$string 的开头位置截掉最短匹配的$substring. ${string##substring} 从$string 的开头位置截掉最长 ...
随机推荐
- nginx:支持https
1.查看nginx模块 nginx -V 注意是大写的V,小写的v是查看版本号的命令. 如果看到with-ssl那就是有的 2.注册ssl证书并下载 免费的ssl证书有: Let's Encrypt ...
- 最完整的mac安装caffe
Dependencies : [TIP : Though the official documentation suggests installing Anaconda, it would be be ...
- (C/C++学习笔记) 二十二. 标准模板库
二十二. 标准模板库 ● STL基本介绍 标准模板库(STL, standard template library): C++提供的大量的函数模板(通用算法)和类模板. ※ 为什么我们一般不需要自己写 ...
- 输入系统:epoll & inotify
一.epoll 作用:检测一个或多个文件的可读.可写等属性变化: 代码示例: #include <sys/epoll.h> #include <stdio.h> #includ ...
- 在ros功能包CMakeLists.txt中获取所在功能包的路径 便于添加第三方库的相对路径
在 ros 功能包中要使用第三方的动态库,将其放在系统默认库路径和使用绝对路径均不可取,这样的话可移植性较差,将该功能包移到其它电脑时要重新配置依赖库的路径,太麻烦了. 于是找到下面这个方法,解决了R ...
- Class file collision
ecplise报错,提示:Class file collision (类文件冲突) 原因是:文件保存(编译)后,生成了class文件起了冲突,windows 系统认为Test.class 和test. ...
- <YaRN><Official doc><RM REST API's>
Overview ... YARN Architecture The fundamental idea of YARN is to split up the functionalities of re ...
- requery.js使用姿势
最近在看requerjs,现在来总结下自己的收获,有不对的地方,望大家指正! 1.首先介绍下requirejs,引用中文官网http://www.requirejs.cn的一句话,requirejs是 ...
- Linux下Ganglia集群监控安装、配置笔记
http://www.blogjava.net/henry14/archive/2011/12/17/ganglia.html 枪声依旧 Linux下Ganglia集群监控安装.配置笔记 Gangli ...
- java学习笔记27(File类)
File类: 定义:文件和目录径的抽象表示形式, Java中将路径或者文件封装成File对象 1.File类的静态成员变量 package com.zs.Demo2; import java.io.F ...