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 的开头位置截掉最长 ...
随机推荐
- 深入理解java虚拟机---虚拟机工具jps与jstat(十四)
jps-java process status jps类似于linux的ps命令,用于查看进程. JPS 名称: jps - Java Virtual Machine Process Status T ...
- Iterator 与ListIterator的区别
Iterator 与ListIterator的区别: 1.Iterator能够迭代Set和List集合的元素,而ListIterator只能迭代List集合的元素 2.Iterator只能前向迭代,L ...
- Centos7配置NFS
centos7配置nfs yum -y install nfs-utils rpcbind 设置服务开机启动: systemctl enable rpcbind systemctl enable nf ...
- 使用MyEclipse开发Java EE应用:用XDoclet创建EJB 2 Session Bean项目(一)
[MyEclipse最新版下载] 一.创建一个EJB项目 1. 选择File>New Project,选择EJB Project,然后单击Next. 2. 在Project name字段中输入f ...
- 集成学习-xgboost
等同于xgboost是个准曲率很高的集成学习框架,在很多比赛中成绩优异. 大多数的集成学习都使用决策树作为基分类器,主要是因为本身要训练多个分类器,而决策树速度很快,总体时间相对较少. 决策树 在讲x ...
- innodb mvcc,事务隔离级别,读写锁
mvcc其实和copyonwritelist的思路差不多:读不加锁,写加锁,事务提交之后释放锁,并且延伸的是,在UNdolog里面保存了几个版本,实现不同的隔离级别.如果读数据页里面最新的数据,那么就 ...
- ChinaCock界面控件介绍-TCCImageViewerForm
有多个图片,左右滑动可以切换,通过手势还可以放大.缩小查看,象常见的相册,就是这样子实现效果. 现在,我们有了TCCImageViewerForm组件,也可以轻松实现这样的场景应用. 现在看看TCCI ...
- uniGUI HyperServer
uniGUI HyperServer 是一种新的服务器体系架构, 旨在高度提高 uniGUI 应用程序的可用性.稳定性和特定的可伸缩性. 这一目标是通过应用业界已知和广泛使用的技术 (如负载平衡和过程 ...
- python day 16作业
day18天作业及默写1,完成下列功能: 1.1创建一个人类Person,再类中创建3个静态变量(静态字段) animal = '高级动物' soup = '有灵魂' language = '语言' ...
- 【Python】socket编程-3
. SocketServer最简单的使用方法: () 创建一个Handler类,继承自BaseRequestHandler,重写其handle(),在该方法中完成对请求的处理. () 实例化一个Ser ...