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 操作的更多相关文章

  1. shell脚本操作mysql数据库

    shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql  -hhostname -Pport -uusername -pp ...

  2. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

  3. shell字符串操作详解

    shell字符串操作详解的相关资料. 1.shell变量声明的判断  表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...

  4. shell脚本操作mysql库

    shell脚本操作mysql数据库-e参数执行各种sql(指定到处编码--default-character-set=utf8 -s,去掉第一行的字段名称信息-N) 2011-05-11 18:18: ...

  5. Mongodb DB shell数据操作

    shell命令操作语法和JavaScript很类似,其实控制台底层的查询语句都是用JavaScript脚本完成操作的. Ø 数据库 1.Help查看命令提示 help db.help(); db.yo ...

  6. 第十一章、认识与学习 BASH Bash Shell 的操作环境

    bash中的变量动不动就说环境变量,真是奇怪,bash只是一个c语言编写的程序而已,跟环境变量有什么关系?如果知道dos的历史的话就知道有个时代是只有命令行界面而没有图形用户界面,这只小小的程序就包揽 ...

  7. shell指令操作memcached

    shell指令操作memcached,可以用来直接测试memcached. 初始值为1000 #set test-value =1000printf "set test-value 0 0 ...

  8. linux下各种形式的shell加法操作总结

    linux 下shell加法操作总结: #!/bin/bash   n=1;echo -n "$n "   let "n = $n + 1" echo -n & ...

  9. Shell字符串操作

    @1:子串削除 ${string#substring} 从$string 的开头位置截掉最短匹配的$substring. ${string##substring} 从$string 的开头位置截掉最长 ...

随机推荐

  1. windows上dubbo-admin的安装

    dubbo-admin的安装 (1)先下载好zookeeper包,因为启动dubbo-admin时需要先启动zookeeper zookeeper:dubbo的注册中心(自己下载 ,找到bin目录下的 ...

  2. leetcode python 002

    ##002 Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8# 链表节点都是一位数字,以上可以视为2 ...

  3. 重载的方式写Python的get请求

    #encoding=utf-8#__author__="Lanyangyang" import unittestimport requestsimport json # This ...

  4. CPU使用率过高分析方法

    项目过程中发现,应用服务器经常会出现CPU使用率较高的情况,需要定位出具体代码问题. 1.用top命令,根据CPU使用率排序,找出消耗cpu最高的进程 2.找出该进程下消耗CPU最高的线程(命令:to ...

  5. js 冒泡事件阻止 父层事件影响子层

    当父层 与子层 有相同的事件时,但子层跟父层执行的内容却不一样时 为了 防止 父层事件对子层造成影响我们可以在子层的方法里做如下操作 function A (event){ event.stopPro ...

  6. matlab中循环的使用

    转载自 https://blog.csdn.net/ssure/article/details/30329601 matlab 中的while循环只有 while statement .... end ...

  7. ylz外网连接ESB流程

    先在指定目录下写Controller,在目录下com.ylzinfo.controller.zhizhi package com.ylzinfo.controller.zhizhi; import j ...

  8. transform带来的坑

    1.transform会使子元素fixed定位和absolute定位失效. 2.父元素设置了border-radius和overflow:hidden, 但是子元素有transform属性,父元素设置 ...

  9. [Paper] Selection and replacement algorithm for memory performance improvement in Spark

    Summary Spark does not have a good mechanism to select reasonable RDDs to cache their partitions in ...

  10. mail工具的安装、配置及问题处理

    使用mail发邮件时,应先将相关邮件服务启动,本文主要介绍sendmail邮件工具的配置方法和问题处理. 1.安装 ubuntu中sendmail函数可以很方便的发送邮件,ubuntu sendmai ...