• shell dict 操作


    shell 读取文件,利用dict 合并第一列 。

    #!/bin/bash
    result_file="a"
    declare -A mydict
    
    total=`cat ${result_file}.bak| wc -l `
    count=0
     
    #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+=1))
    #文件读结束时候输出所有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

     
  • 相关阅读:
    最大值和最小值
    GetLevelDesc函数
    21. D3DSprite
    SetFileAttributes和GetFileAttributes
    24. 幕外渲染
    D3D修改view矩阵与修改world矩阵的区别
    23. 保存纹理(保存屏幕截图)
    C++之solmyr小品文
    C++二进制文件写操作
    22. 凸凹贴图
  • 原文地址:https://www.cnblogs.com/lavin/p/8509902.html
Copyright © 2020-2023  润新知