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求和源代码
1.设计思想:利用eclipse编写. 2.程序流程图:先建立一个包->建立一个类->写代码->运行->修正错误,完善代码. 3.源程序代码: package dijia; p ...
- 【资料搜集】Python学习
python学习手册 | 演道网 http://dev.go2live.cn/python/python%e5%ad%a6%e4%b9%a0%e6%89%8b%e5%86%8c.html
- 四:(之四)基于已有镜像构建自己的Docker镜像
4构建自己的Docker镜像 4.1常用命令: 等同于docker commit 将一个被改变的容器创建成一个新的image 等同于docker build 通过Dockerfile创建一个image ...
- python中各种遇到的函数
函数:split() Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(lis ...
- C++11智能指针 share_ptr,unique_ptr,weak_ptr用法
0x01 智能指针简介 所谓智能指针(smart pointer)就是智能/自动化的管理指针所指向的动态资源的释放.它是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动 ...
- ps基础学习笔记一
图像?表示分为位图方式和矢量图方式 位图是像素点组成,一副图像所含像素越多,图像的效果就越好 矢量图是基于一定数学方式描述,适合表示色彩较少,一色块为主,曲线简单的图像,文件小ps一般用来处理位图,c ...
- L298 猴子进化过程
The evolution of monkeys remains a mystery Why monkeys and apes took separate evolutionary paths has ...
- LVS+OSPF+FULLNAT集群架构
OSPF:OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(aut ...
- python scrapy 数据处理时间格式转换
def show(self,response): # print(response.url) title = response.xpath('//main/div/div/div/div/h1/tex ...
- 路径问题 :<c:url >的作用
最近的项目一直报这样的错 可是本地启动 又没问题,xshell查看日志 没有错误日志,找了好久都没想到错误原因.一位大佬几分钟就找到原因了有点扎心. 首先说一下解决问题的思路.首先报错是4开头,说明是 ...