首页 > 其他分享 >数组

数组

时间:2022-12-01 11:56:40浏览次数:36  
标签:do array1 sex 数组 line echo

#普通数组:只能使用整数作为数组索引
#普通数组
	一次赋一个值
	array1[0]=pear
	array1[1]=apple
	一次赋多个值
	array2=(tom jack alice)
	array3=(`cat /etc/passwd`)  #会将文件中的每一行做为一个值赋值给数组,但是如果有空格,会按空格分割,有空格需重新定义分隔符
	array4=(tom jack alice "bash shell")
	colors=($red $blue $green $recolor)
	array5=(1 2 3 4 5 6 "linux shell" [20]=saltstack) #可以指定下标赋值
#关联数组:可以使用字符串作为数组索引
#关联数组
	info=([name]=tianyu [sex]=male [age]=36 [height]=170)  
	
echo ${info[age]}	
echo ${array1[0]} #访问数组中第一个元素
echo ${array1[@]} #访问数组中所有元素 等同于echo ${array1[*]}
echo ${#array1[@]} #统计数组元素的个数
echo ${!array1[@]} #获取数组元素的索引
echo ${array1[@]:1} #从数组下标1开始
echo ${array1[@]:1:2} #从数组下标1开始,访问两个元素
declare -a  #查看数组

  

#while循环遍历数组元素

#!/usr/bin/bash
while read line
do
        hosts[++i]=$line
done </etc/hosts

echo "hosts first: ${hosts[1]}"
echo

for i in ${!hosts[@]}
do
        echo "$i: ${hosts[i]}"
done

  

#for循环读取数据到数组 需重新定义文件分割符


#!/usr/bin/bash
OLD_IFS=$IFS
IFS=$'\n'

for line in `cat /etc/hosts`
do
        hosts[++j]=$line
done

for i in ${!hosts[@]}
do
        echo "$i: ${hosts[i]}"
done

IFS=$OLD_IFS

  

#用数组统计每个分组的数量

#!/usr/bin/bash
declare -A sex
echo "jm m" > sex.txt
while read line
do
        type=`echo $line | awk '{print $2}'`
        let sex[$type]++
done < sex.txt

for i in ${!sex[@]}
do
        echo "$i: ${sex[$i]}"
done


#遍历数组统计不同shell类型数量
#!/usr/bin/bash
#awk -F":"  '{print $NF}' /etc/passwd |sort |uniq -c  #等价于这条命令


declare -A shells

while read line
do
        type=`echo $line |awk -F":" '{print $NF}'`
        let shells[$type]++
done </etc/passwd

for i in ${!shells[@]}
do
        echo "$i: ${shells[$i]}"
done

  

标签:do,array1,sex,数组,line,echo
From: https://www.cnblogs.com/smatter/p/16940989.html

相关文章

  • 后缀数组&后缀自动机
    SA后缀排序的中心思想是倍增,为了优化常数会使用一些比较特别的技巧。写法上主要分为两个部分,即预处理部分和倍增部分。首先定义几个数组,\(sa_i\)是排名为\(i\)的数组的......
  • 数组API
    数组APImap:遍历数组,返回回调返回值组成的新数组forEach:无法break,可以用try/catch中thrownewError来停止filter:过滤some:有一项返回true,则整体为trueevery:......
  • 032shell数组用法及多行注释
    一、Shell中将分隔符的字符串转为数组的常用方法[root@host~]#str="ONE,TWO,THREE,FOUR"[root@host~]#arr=(`echo$str|tr','''`)[root@host~]#echo${arr......
  • 每日算法之调整数组顺序使奇数位于偶数前面(一)
    JZ21调整数组顺序使奇数位于偶数前面(一)描述输入一个长度为n整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的......
  • 数组
    1:一维数组  一维数组的显示方法  注意:如果数组中的元素是引用类型,就必须为每个数组元素分配内存。(比如自定义类型的数组)   2:二维数组(最终定义是:是一个......
  • 后缀数组(SA)学习笔记
    这玩意真的是给喵人学的吗,谁告诉本喵这个简单让我先学这个的(哭sa[sum[rk[tp[i]]]--]=tp[i];有没有人浇浇这句话什么意思啊(悲tp[i]表示第二关键字排名为i的串的位置r......
  • 数组中的前缀和
    输入一个长度为 n 的整数序列。每个询问输入一对{s,e};对于每个询问,输出原序列中从第s个数到第e个数的和。#include<iostream>#include<cstdio>usingnamespace......
  • 力扣 leetcode 153. 寻找旋转排序数组中的最小值
    问题描述已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4......
  • 力扣 leetcode 33. 搜索旋转排序数组
    问题描述整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k......
  • 对象,数组及字符串的操作方法
    一、对象操作方法  对象的操作的语法分为点语法和数组关联语法两种,点语法是对象名.键,数组关联语法是对象名['键']。值得注意的是,点语法的键不能是变量,变量必须要用数......