美文网首页
linux 数组

linux 数组

作者: caokai001 | 来源:发表于2019-04-01 21:23 被阅读0次

    数组:
    https://blog.csdn.net/Jerry_1126/article/details/52027539

    对数组不了解,进行一下笔记:

    A=(SRR1.sam SRR2.sam SRR3.sam)
    需要对A数组每个元素添加.bam后缀,操作如下:
    
    [kcao@login 04_trim]$  echo ${A[*]}
    SRR1.sam SRR2.sam SRR3.sam
    
    [kcao@login 04_trim]$ for i in `seq ${#A[*]}`;do A[i-1]=${A[i-1]}.bam;done;echo ${A[*]}
    SRR1.sam.bam SRR2.sam.bam SRR3.sam.bam
    
    或者
    [kcao@login 04_trim]$ echo ${b[*]}
    SRR1.sam.bam SRR2.sam.bam SRR3.sam.bam
    

    数组声明:

    declare -a array_name
    declare -a nums=(1 2 3 4)
    unset array_name 删除数组
    unset nums[0] 删除元素
    可以不实现声明,直接进行定义
    >数组定义:
    array_name = (1 2 3 4 5 6 name age) # 1
    array_name[0]=asd # 2
    array_name[2]=asda
    array_name=([0]=asda [1]=qwea [2]=sqzd) # 3
    str="asda asda adsa qweq "
    array_names=($str) # 4
    

    求数组长度:

    ${#array_name[@]}
    ${#array_name[*]}
    

    求数组某个元素的长度:

    ${#array_name[2]} 第三个元素的长度 # 1
    expr length ${array_name[2]} # 2
    echo ${array_name[2]} | wc -L # 3
    echo -n ${array_name[2]} | wc -l # 4
    

    数组索引:

    s="A,B,C,D"
    a=(`echo $s | tr ',' ' '`)
    echo ${!a[@]}
    

    数组遍历:

    names=(asda aqwe sda gsdf wqe)
    for (( i=0;i<${#array_name[*]};i++ )) 按索引遍历
    echo ${array_name[$i]}
    do
        echo ${array_name[$i]}
    done
    for i in ${array_name[*]] 不按索引遍历
    do
          echo $i
    done
    

    数组添加元素:

    array_name=(1 2 3 4)
    array_name[4]=5 # 1 使用索引添加元素
    old=(1 2 3 4)
    new=(${old[*]} 5) # 构建新数组
    

    分片访问

    分片访问形式为:${数组名[@或*]:开始下标:结束下标},注意,不包括结束下标元素的值。
    例如:${arr_number[@]:1:4},这里分片访问从下标为1开始,元素个数为4。
    

    模式替换

    形式为:${数组名[@或*]/模式/新值}
    例如:${arr_number[@]/2/98}
    

    相关文章

      网友评论

          本文标题:linux 数组

          本文链接:https://www.haomeiwen.com/subject/isgbbqtx.html