shell 中的数组操作
时间:2020-05-25
本文章向大家介绍shell 中的数组操作,主要包括shell 中的数组操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
shell中数组操作
1.将一个字符串按照指定分隔符转换成数组
在shell处理中,经常需要将一个字符串按照字符串中的某个分隔符转换成一个数组,从而方便处理,转换时需要环境变量IFS,指定分隔符类型:
#!/bin/bash
# test.sh
# 给定字符串,以 ; 进行分割
TEST_STR="abc;def;ghi;jkl"
# 备份之前的分隔符环境变量
OLD_IFS=$IFS
# 指定分隔符为 ;
IFS=";"
# 将字符串以 ; 分割成数组
STR_LIST=($TEST_STR)
# 恢复分隔符环境变量
IFS=$OLD_IFS
# 数组大小
echo "arry size: ${#STR_LIST[@]}"
# 数组内容
echo "arry content: ${STR_LIST[@]}"
$./test.sh
arry size: 4
arry content: abc def ghi jkl
2.判断数组中是否包含某字符串
#!/bin/bash
# test.sh
# 给定字符串,以 ; 进行分割
item_arry=($1)
# 扩展给定数组的所有索引值
for i in ${!item_arry[@]};
do
if [ "${item_arry[$i]}" == "abc" ]; then
echo "abc is in arry"
fi
done
$./test.sh "abc def ghi jkl"
abc is in arry
3.判断数组内是否有重复元素
由于没有找到对应的操作,借助awk实现判断数组内是否有重复元素:
#!/bin/bash
# test.sh
# 将输入参数转为数组
item_arry=($1)
# 遍历数组元素
for i in ${item_arry[@]}; do
echo $i
done | awk '{a[$1]++}END{for(i in a) {print a[i] ,i}}' | awk '$1>1{print $2" imte is duplicate";exit 1}'
# 判断awk的返回值,为1则有重复元素
if [ $? -ne 0 ]; then
echo "item is duplicate"
else
echo "item is unique"
fi
$./test.sh "abc def ghi jkl"
item is unique
$./test.sh "abcd def ghi jkl abcd"
abcd imte is duplicate
item is duplicate
原文地址:https://www.cnblogs.com/guo-yw/p/12958082.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- React Ref 使用总结
- Python人脸识别—我的眼里只有你
- 函数式编程是如何提升代码的扩展性
- 浏览器中的跨域问题与 CORS
- 微信小程序怎么做链接可以链到小程序的其它页面。
- 如何实现一个 3D 效果的魔方
- FlutterDojo设计之道—状态管理之路(三)
- 微信头像加国旗
- FlutterDojo设计之道—状态管理之路(四)
- FlutterDojo设计之道—状态管理之路(五)
- Python高级进阶(一)Python框架之Django入门
- python 自动化测试(2):针对密码输入框为密码控件时的解决方案
- 微信小程序开发之视图容器swiper
- WINDOWS服务器同时安装多个版本的MYSQL的方法,MQYSQL5和MQYSQL8的共存。
- 使用PHP对接国外的PAYPAL支付最新REST API接口。